다들 STL 잘 사용하고 계신가요?
오늘도 라태웅(NHN NEXT, NEXON)님의 발표입니다.
STL의 기본 개념부터, 사용 노하우까지 담아보았습니다.
여러분들도 우리 스터디 참여하셔서 Live로 들으시고 발표도 하러 오세요!
관련 문의 : 댓글 or https://www.facebook.com/gpgstudygogo
다들 STL 잘 사용하고 계신가요?
오늘도 라태웅(NHN NEXT, NEXON)님의 발표입니다.
STL의 기본 개념부터, 사용 노하우까지 담아보았습니다.
여러분들도 우리 스터디 참여하셔서 Live로 들으시고 발표도 하러 오세요!
관련 문의 : 댓글 or https://www.facebook.com/gpgstudygogo
9. 커널 오브젝트
• 레퍼런스 카운트와 비슷
• 커널 오브젝트가 생성되거나
사용 카운트 다른 프로세스가 접근 권한을 획득하면
1 증가.
보안 디스크립터
• CloseHandle() 함수를 이용하거나
프로세스가 종료 되면 1 감소
타입에 따른 고유의 정
보 • 이거시 0 이 되면 커널 오브젝트 삭제!!
10. 커널 오브젝트
사용 카운트
• 커널 오브젝트의
소유자, 접근권한/제한 정보.
보안 디스크립터
• 주로 서버 개발에 사용.
Private Namespace 추가로
타입에 따른 고유의 정 클라이언트 사용.........?
보
12. 보안 주의 사항
• 보안 접근 플래그를 간과하지 말 것.
올바른 플래그 사용하면 다른 윈도우 버전으로 포팅이 쉬워짐.
EX) 사용자 계정 컨트롤 (UAC)
13. 커널 오브젝트 핸들 테이블?
• 프로세스가 초기화 되면 커널 오브젝트 핸들 테이블 할당.
(데이터 구조체 배열)
• 프로세스 별로 핸들이 독립적으로 유지.
• 유저오브젝트나 GDI 오브젝트 는 사용되지 않는
Only 커널 오브젝트를 위한 테이블.
• MS 는 핸들 테이블 구조와 관리방법등을 문서화 X
14. 커널 오브젝트 생성
인덱 커널 오브젝트 액세스 플래그
스 메모리 포인터 마스크
1 0x00000000 0x???????? 0x????????
2 0x00000000 0x???????? 0x????????
… … … ..
Create 호출
커널 오브젝트 할당 또는 기존 오브젝트 반환
(0xF0000001) 사용 카운트 + 1
인덱 커널 오브젝트 액세스 플래그
스 메모리 포인터 마스크
테이블에
1 0xF0000001 0x???????? 0x0000000 등록된
0 핸들반환
2 0x00000000 0x???????? 0x????????
… … … ..
15. 커널 오브젝트 생성
• Create 함수로 반환되는 핸들을 (/ 4) 나 (>>2) 하면
커널 오브젝트 테이블의 인덱스를 얻을 수 있음.
• 대부분의 Create 함수 실패 -> return NULL;
CreateFile 같은 함수 실패 -> INVALID_HANDLE_VALUE;
주의 요망.