입력과 출력

- 로우레벨 계층의 I/O 시스템 : 하드웨어 등과의 통신 담당
- 하이레벨 계층의 Win32 서브시스템 : GUI를 구현하고 사용자 입력 처리 작업 담당

  I/O 시스템

-       시스템에서 동작하는 디바이스 드라이버를 관리

-       App과 디바이스 드라이버 간의 통신 담당 커널 컴포넌트들로 구성됨

-       App의 디바이스 드라이버에 대한 요청을 전달하는 작업을 담당함

-       계층 구조로 이루어짐(각 디바이스에 대해 여러 개의 디바이스 드라이버가 스택구조로 존재할 수 있음 : 드라이버와 App 간이나 두 드라이버 간의 통신을 모니터링하거나 변경하기 위한 필터 드라이버 추가에 적합)

-       각 드라이버 간의 연결을 책임지고 담당

 

  Win32 서브시스템

-       윈도우 사용자 인터페이스의 모든 부분을 담당하는 컴포넌트

-       GDI(Graphics Device Interface)라고 하는 로우레벨 그래픽 엔진과 윈도우창, 메뉴, 사용자 입력 처리와 같은 하이레벨의 GUI를 처리하는USER컴포넌트로 구성됨

 

# Win32 서브시스템 동작방식

-       Win32 서브시스템은 모든 Win32 API를 담당하는 것이 아니고, 단지 USER, GDI 부분만을 담당함

-       커널 레벨의 WIN32K.SYS에 의해서 구현되고 유저레벨의 USER32.DLL GDI32.DLL에 의해서 관리됨

-       유저모드 DLL과 커널 컴포넌트 사이의 통신은 기존의 시스템 콜 방식을 이용해서 이루어짐

 

  객체 관리자

-       USER, GDI는 윈도우 초기 버전부터 존재해 왔으므로 커널 객체 관리자를 사용하지 않음

-       자신만의 작은 객체 관리 메커니즘 이용함

-       윈도우 창, 디바이스 컨텍스트와 같은 Win32 객체에 대한 핸들값 → 객체 테이블에 대한 인덱스

-       객체 테이블은 커널 메모리에 저장됨(읽기 모드)

-       USER, GDI 핸들 테이블은 전역(global)

'Security > Reverse Engineering' 카테고리의 다른 글

[Reversing] Ollydbg 단축키  (0) 2010.07.02
[Reversing]구조화된 예외 처리(SEH)  (0) 2010.05.10
[Reversing]실행 포멧  (0) 2010.05.08
[Reversing]API  (0) 2010.05.04
[Reversing]프로세스 동기화, 초기화 과정  (0) 2010.05.04

+ Recent posts