본문 바로가기

hooking

Pyhook Pyhook 이번에는 PyHook에 대해서 알아보도록 하겠습니다.먼저 후킹에 대해서 알아야 하는데, Hook은 갈고리를 뜻합니다. 갈고리의 역할은 무언가 낚아채는데 이용하죠. 컴퓨터 공학에서는 Hooking이라는 말을 사용하는데 컴퓨터가 어떤 일을 처리하는 과정 중에 낚아채는 것을 의미합니다.ImmunityDBG에서는 여러가지 Hook이 존재합니다. BPHook, LogHook, PreBpHook, LoadDLLHook 등등이 존재합니다. 위 소스코드를 보죠. 먼저 AllExceptHook은 프로그램이 예외가 발생하게 되면 잡아줍니다.regs는 CPU 레지스터 정보를 갖고 잇습니다. 10줄에 보면 log에 해당 레지스터를 남기고 있습니다. echo-server-strcpy를 ImmunityDBG로 실행합.. 더보기
Windows Massage Hooking Hook 이라는 단어는 고리, 걸이, 바늘 등의 뜻을 가지고 있습니다. Hook 이라는 말은 리버싱을 하면서 어떤 뜻으로 사용되나면 중간에 정보를 가로채는 것으로 사용됩니다. 간단히 설명하자면 키보드가 눌릴때 WM_KEYDOWN 메시지가 말생합니다. 이 메세지에 의해서 프로그램에서 키보드가 눌렸다라는 것을 알려주죠.이러한 메세지를 중간에 가로채는것을 Hooking이라고 합니다. Win32 API나 MFC를 해보셨다면 Window Massage에 대해서 조금은 아실 겁니다. Massage Hooking은 SetWindowsHookEx()라는 API를 이용해 간단히 구현할 수 있습니다. SetWindowsHookEx()의 원형은 다음과 같습니다. msdn에서 각 인자 값에 대한 설명은 다음과 같습니다. ht.. 더보기