중간에서 오고가는 정보를 엿보거나 가로채기 위해 초소를 설치하는 일을 훅(hook)을 건다 라고 하고, 실제로 정보를 엿보고 조작하는 행위를 후킹(hooking)한다라고 얘기합니다.
컴퓨터 분야에서도 후킹이 광범위하게 사용되고 있습니다.
실제로 'OS - 애플리케이션 - 사용자' 사이에 오고가는 정보를 전부 엿보고 조작할 수 있습니다.
windows 운영체제는 GUI(Graphic User Interface)를 제공하고, 이는 Event Driven 방식으로 동작합니다. .키보드/마우스를 이용하여메뉴 선택, 버튼 선택, 마우스 이동, 창 크기 변경, 창위치 이동 등의 작업은모두 이벤트(Event)입니다.
이런 이벤트가 발생할 때 OS는 미리 정의된 메시지를 해당 응용 프로그램으로 통보합니다.
응용 프로그램은 해당 메시지를 분석하여 필요한 작업을 진행하는 것입니다. 즉 키보드를 입력할 때에도 OS로 부터 응용프로그램으로 메시지가 이동합니다. 메시지훅이란 바로 이런 메시지를 중간에서 엿보는것 입니다.
---------------- Windows 메시지 흐름에 대한 설명 ----------------
※ 키보드 입력 이벤트가 발생하면 WM_KEYDOWN 메시지가 [OS message queue]에 추가됩니다.
OS는 어느 응용 프로그램에서 이벤트가 발생했는지 파악해서 [OS message queue]에서 메시지를 꺼내어 해당 응용 프로그램의 [application message queue]에 추가합니다.
응용 프로그램은 자신의 [application message queue]를 모니터링하고 있다가 WM_KEYDOWN메시지가 추가된 걸 확인하고 event handler를 호출합니다.
'reversing' 카테고리의 다른 글
PE DOS Header (0) | 2022.05.12 |
---|---|
PE File Format (0) | 2022.04.25 |
함수호출 규약(Calling Convention) (0) | 2021.11.09 |
스택 프레임 (0) | 2021.11.08 |
스택 (0) | 2021.11.04 |
댓글