본문 바로가기
reversing

Hook ? (훅 이란 ?)

by 코끼리_땃쥐 2022. 2. 24.
반응형

중간에서 오고가는 정보를 엿보거나 가로채기 위해 초소를 설치하는 일을 훅(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

댓글