목록Reversing/Hooking (3)
Hacking Arts
- 키보드 메시지 후킹 실습 [그림 1 키보드 후킹 원리 그림] KeyboardProc.dll 파일은 훅 프로시저 KeyboardProc가 존재하는 DLL파일입니다. HookMain.exe는 KeyHook.dll을 최초로 로딩하여 키보드 훅을 설치하는 프로그램 입니다.HookMain.exe에서 KeyHook.dll 파일을 로딩한 후 SetWindowHookEx()을 이용하여 키보드 훅을 설치합니다. 다른 프로세스에서 키 입력 이벤트가 발생하면 OS에서 해당 프로세스의 메모리 공간에 KeyHook.dll을 강제로 로딩하고 KeyboardProc()함수가 호출되는 형태입니다. 중요한 점은 키 입력 이벤트가 발생하면 강제로 로딩 시켜준다는 점입니다. 즉 메시지 후킹 기법은 DLL인젝션 기법의 하나로 사용됩니다..
-윈도우에서 메세지란?일단 메세지 후킹에 대해 작성하기전에 메세지에 대해 알아보자.어떤 책에서 읽은 내용인데 윈도우는 이벤트 지향,메세지 기반 운영체제이다. 여기서 말하는 메세지란 마우스를 움직이거나 키보드로 입력하는 행위라고 할 수 있다. 윈도우의 메시지 처리 과정은 1 이벤트 발생 2 메세지 전송 3 메세지 처리 4 화면 출력 이런식으로 이루어진다고 생각하면 된다.이벤트는 주로 입력장치(키보드,마우스)에서 발생되면 이를 CPU에 알리기 위해 메세지를 생성후 전송하고 이를 처리하여 다시 출력장치(모니터,프린터)로 결과 값을 보여주는 등의 과정이 윈도우에서 메세지 처리 방식이다. 메세지 처리하는 두가지 방법1.에플리케이션이 가지고 있는 메시지 큐에 메세지를 추가하는 방법2.에플리케이션의 윈도우 프로시저에..
- Windows Hook : 훅이라는 단어는 사전적으로는 낚시바늘이나 갈고리 같이 낚다라는 뜻을 가지고 있다. 그러므로 Windows Hook이라고 하면 Windows OS에서 무언가를 낚아챈다라고 이해 할 수 있다. - Windows Hook 종류 - Code Project의 Three Ways to Inject Your Code into Another Process에서의 Windows Hook 종류1.Local hooks : 자신의 프로세스에 구성된 스레드들의 메시지 트래픽을 감시2.Remote hooks : 다른 프로세스에 속해진 스레드들의 메시지 트래픽을 감시3.Remote hooks : 현재 시스템에서 동작하는 모든 스레드들의 메시지 트래픽을 감시 Local hooks의 경우를 제외하고는 수행..