디버깅 중인 프로세스 덤프하기



 x64dbg에는 Scylla라고 하는 플러그인이 기본으로 내장되어 있고, 이를 사용하면 간단하게 디버깅 중인 프로세스를 덤프하고 IAT를 복구할수 있습니다. 간단하게 UPX 패킹된 샘플을 언패킹하면서 방법을 알아보겠습니다.





 우선 UPX 패킹의 특징인 PUSHAD에서 POPAD로 이어지는 일련의 언팩 과정을 지나, JMP 명령이 가리키는 주소를 찾습니다.

이 주소가 OEP입니다.



OEP까지 이동한 후 위에 표시된 Scylla 플러그인을 실행시킵니다.




 IAT Autosearch, Get Imports 버튼을 차례대로 눌러 IAT를 자동으로 찾습니다. 저의 경우 저렇게 찾지 FThunk가 발생하기도 하는데 원인은 잘 모르겠습니다. 해당 주소로 이동해 봐도 그 주소에서 바로 ret을 할 뿐이었습니다. 이후 오른쪽의 Dump 버튼을 눌러 [기존 파일명]_dump.exe 파일명으로 프로세스를 그냥 덤프하고, 그 밑의 Fix Dump 버튼을 누르고 방금 드랍시킨 파일을 선택해 고친 IAT를 적용시켜 프로세스를 다시 덤프합니다.




 그러면 [덤프된 파일명]_SCY.exe로 파일이 새로 생성되고, 이 파일이 IAT까지 Rebuild된 덤프 결과입니다.




 IDA로 까보면 언팩된 코드를 그대로 볼 수 있습니다.



 중간에 발생한 FThunk의 경우 검색해봐도 잘 나오지 않아서 원인을 찾을 수가 없는데 혹시 아시는 분이 있다면 댓글로 알려주시면 감사하겠습니다.



블로그 이미지

__미니__

E-mail : skyclad0x7b7@gmail.com 나와 계약해서 슈퍼 하-카가 되어 주지 않을래?

,