API Hooking
-
[리버싱 핵심원리 study] 30장 메모장 WriteFile() 후킹Reverse Engineering 2021. 1. 18. 19:38
이전 29장 스터디 내용의 테크 맵 중 debug 방법에 대한 실습이다. kernel32.dll의 WriteFile() API를 후킹 하여 기존과는 다른 동작을 하도록 만든다. debug 방식의 장점은 debugging을 사용함으로써 사용자와 더 interactive 한 후킹을 수행할 수 있다는 점이다. 실습을 진행하기에 앞서 디버거에 대한 설명을 정리해보자. 1. 디버거 설명 1) 용어 debugger - 디버깅 프로그램 (단순 ollyDbg, x64dbg 등의 프로그램 이외에도 사용자 제작 프로그램 포괄하는 개념) debuggee - 디버깅 당하는 프로그램 2) 기능 debugger는 debuggee가 올바르게 실행되는지 확인하고 프로그램의 오류를 발견하는 기능을 한다. 또한 debuggee의 명령어..
-
[리버싱 핵심원리 study] 29장 API 후킹 : 리버싱의 '꽃'Reverse Engineering 2021. 1. 18. 11:51
1. API 후킹 Win32 API를 후킹 하는 기술을 API 후킹이라고 한다. API(Application Programming Interface)란 사용자 애플리케이션이 시스템 커널에 대한 접근을 요청할 때 사용되는 것으로, Windows에서는 MS에서 Win32 API라는 것을 제공하고 있다. API 후킹을 통해서 Win32 API 호출을 중간에서 가로채 제어권을 얻어낼 수 있는데, 도식화하면 아래와 같은 구조를 갖는다. 위와 같이 CreateFile() API를 후킹 한 경우 호출될 때마다 중간에 있는 hook.dll의 MyCreateFile()이 호출된다. 2. 태크 맵 책에서는 아래와 같이 API 후킹에 대한 기술적 범주를 테크 맵으로 나타내고 있다. (32bit 기준) Method Objec..