본문 바로가기

리버싱

Reversing

훅(Hook) : 예로 군사적으로 아주 중요한곳이 3중으로 경비초소를 설치하였다면 스파이가 몰래경비초소를 하나 추가하였다면 이곳을 통과하는 사람들은 아무 의심없이 동일한 검문 절차를 밟을 것 그러므로 많은 정보를 얻을수 있다 라고 할수있습니다. 이런 행위를 훅을 건다(설치한다 라고 합니다)(Hoocking)

 

Window 운영체제는 GUI를 제공하고 Event Driven 방식으로 작동합니다.

즉 이벤트 발생시 OS가 응용프로그램에 미리 정의된 메시지를 통보하면 그것을 분석하여 작업을 진행합니다.

즉 OS에서 Application 으로 가는 메시지를 가로채는 것입니다.

1) 사용자 키입력 -> OS Message queue 추가

2) 어느 응용프로그램 이벤트인지 파악해서 Application message queue에 추가

3) Application은 자신의 메세지 큐를 모니터링 하고 키 입력을 확인후 event handler 호출

 

훅은 MS에서 제공하는 기본기능(SPY++)

메시지 훅은 SetWindowsHookEx( ) API이용 간단히 구현 가능

 

HookMain.exe 를 실행하면 Notepad에 KeyHook.dll이 로딩되고 종료하면 dll이 언로딩 된다.

소스코드를 이해하기위한 함수 포인터에 관한 내용

https://hith77.tistory.com/42

 

 

 

 

'리버싱' 카테고리의 다른 글

Reversing  (0) 2020.03.09
Reversing  (0) 2020.03.07
Reversing  (0) 2020.03.03
Reversing  (0) 2020.03.02
Reversing  (0) 2020.02.24