Game Dev/Binary

DLL Injector

AKer 2011. 7. 6. 11:24
반응형

[ 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