반응형
[ DetourLib.h/cpp ]
- MS에서 제공하는 Detour Library를 사용한 Hook
[ IAT.h/cpp ]
- 프로그램 바이너리의 PE Header에서 IAT(=Import Address Table) 주소를 읽어 그 주소에 기록된 함수의 주소를 변경하는 방법
- 실행 파일마다 PE Header에
IAT가 다르고 IAT에 모든 함수 주소가 존재하는 것은 아니기 때문에 Hooking이 실패할 수도 있음
- MessageBox 함수의 경우 메모장(Notepad)의 IAT에는 존재하지만 그림판(MSPaint)의 IAT에는 존재하지 않았음
[ Jmp.h/cpp ]
- Inline Hooking, Detour Hooking으로도 불림
- Hooking을 원하는 함수의 시작 주소에 JMP(= “E9 4ByteOffset”) 명령을 덮어씌워 우리가 원하는 함수로
호출시키는 방법
- VirtualProtect() 함수로 메모리 읽기/쓰기 권한 획득
성공한다면 Hooking이 가능
* DLL Injection의 개념 학습을 위해 제작한 테스트용 프로그램입니다. (VC6)
* x1njector.exe와 같이 완벽한 Injection은 되지 않습니다.
* SRC의 InjectionDLL.cpp에서 g_eHookMode를 변경하면
각 방식을 변경할 수 있습니다.
반응형
'Game Dev > Binary' 카테고리의 다른 글
Float의 메모리 내용을 Float 값으로 변환하기 (0) | 2011.03.30 |
---|---|
Batman Arkham Asylum Shader (0) | 2009.10.11 |
PC 사양 체크하기 (1) | 2009.09.25 |
유용한 Install Wizard App (0) | 2009.04.22 |