이전 글에 패킹된 파일을 언패킹한 후 메모리 덤프까지 하였습니다. 그럼, 이번 글에서는 IAT를 복구하는 방법을 다뤄보겠습니다. IAT를 복구하는 데 사용될 툴은 ImportRec을 사용하도록 하겠습니다.

우선, "Attach to an Active Process" 옵션으로 올리디버거에 로드된 프로세스를 선택합니다.


Attach를 한 후 이전 글에서 찾았던 OEP 값을(00012475) 입력합니다. 이제 "IAT AutoSearch" 버튼을 클릭합니다. 작업이 성공적으로 이루어지면 "Found something"이라는 메세지가 출력됩니다.


상기 메세지가 출력된 후 "Get Imports" 버튼을 클릭하면 1000h에서 1228h 사이의 유효한 import들을 확인할 수 있게 됩니다. 그리고 이전 글에서 Import 테이블을 살펴본 대로 로그 부분을 보시면 6개의 dll들로 부터 import들을 찾은 것을 확인할 수 있습니다.



마지막으로 "Fix Dump"를 클릭한 후 메모리 덤프된 파일을 열어주면 IAT 복원 작업은 마무리가 됩니다.

이전 글과 이번 글의 내용을 정리하자면 아래와 같습니다.
1. 어떤 패커를 사용했는지 체크
2. 언패킹한 후 메모리 덤프
3. ImportRec을 사용하여 IAT 복원

글을 마치며...
패커의 종류는 다양합니다. 악성코드가 사용하는 다양한 패커 중 일부분인 UPX를 언패킹하는 방법을 살펴보았을 뿐입니다. 이렇게 언패킹된 악성코드들은 언패킹되기 전에 깨져서 보이지 않던 문자열이 보이게 되는 등 분석하는데 용이하게 되기 때문에 분석을 위해서 언패킹작업이 선행되어야겠죠??


신고
Creative Commons License
Creative Commons License
Posted by 비회원
TAG ,