zj3t

email: euntaejang@gmail.com

Latest Posts

실습:Global API Hooking-IE 접속제어

By 오전 1:09 ,

리버싱 핵심원리에 간단한 실습이 있길래 같이 실습해보려고 합니다.

실습 내용은 IE프로세스의 특정 API를 후킹하여 국내 4대 포털 사이트(NAVER, DAUM, NATE, YAHOO)에 접속 시도할 때 다른 주소(www.reversecore.com)로 연결해버리는 것 입니다.
또한 IE의 탭이 새로 생성되면서 동시에 프로세스가 추가되는 경우를 대비해서 Global API Hooking 기법을 사용해 보겠습니다.

API 후킹은 redirect.dll을 인젝션해서 구현합니다. 나중에 코드를 보시겠지만 redirect.dll은 아래 2개의 API를 후킹합니다.

wininet.InternetConnetW() -IE 프로세스의 접속 주소를 제어하기 위해 후킹
ntdll.ZwResumeThread()    -글로벌 API후킹을 구현하기 위해 사용

실습을 위해 먼저 IE를 실행합니다.


Process Explorer를 이용하여 현재 실행 중인 IE 프로세스의 구조를 살펴보겠습니다. 
일단 부모-자식관계로 실행되는 것을 알 수 있습니다. 따라서 부모 프로세스만 ntdll.ZwResumeThread() API를 후킹해도 이후부터 생성되는 모든 자식 IE 프로세스들은 자동으로 후킹됩니다.


다음 redirect.dll 파일을 IE 프로세스(iexplorer.exe)에 인젝션합니다.


왜....책처럼 따라했는데 부모프로세스는 인젝션이 안되고 자식프로세스만 인젝션이 되는 걸까요?? 아시는 분들 답좀 달아주세요....
저도 빨리 알아내겠습니다.

일단 자식 프로세스만 인젝션한채로 해보겠습니다. (그럼 Global이 되지 않을텐데요...)




일단 되기는 하지만 다른 탭 추가시켜서 실행해보니 우회되지 않았습니다. 

Global API Hooking...다음 포스팅에 제대로 찾아서 쓰겠습니다. 또 아까 www.reversecore.com이 아닌 제 블로그 주소로 우회하려고 IDA로 redirect.dll 파일을 뜯어봤는데 PE공간이 넉넉하지 않아 NULL 패딩지역을 찾아 PE Header를 수정해서 그곳에서 우회해야 하겠더라고요. 그것까지 함께 포스팅 해보겠습니다.








You Might Also Like

0 개의 댓글