UPX 수동언패킹 [ Lena 21 ]

2018. 4. 10. 23:58악성코드 분석




이전 게시글에서 말했듯이 UPX의 특징인 PUSHAD를 실행한 직후의 모습이다

STACK에는 EAX~EDI레지스터 값이 PUSH되어 있다

ESP주소에 break를 걸어주고 코드를 실행시켜보자



* ESP주소 : 0012FFA4


* 코드를 실행시킨 뒤의 모습이다 ESP주소에 접근했을 때 실행이 멈추었다

* ESP에 위치해서 POPAD를 통해 레지스터값을 복구시킨뒤 JMP코드를 실행하기 이전의 모습이다



JMP명령을 실행시켜보자



* 여러줄의 코드가 적혀 있는 지점으로 이동했다

* 00401000 지점부터 원본파일의 코드가 된다

* 00401000 : OEP ( Original Entry Point )



# 원본파일의 코드를 DUMP해서 저장하자



ImageBase : 00400000

OEP : 00401000

Ollydump는 rebuild import는 오류가 발생하므로 사용하지 않는다


Dump파일이 생성되었다.


하지만 import address정보가 없기때문에 실행하면 다음과 같이 오류가 발생한다


* Import REC 파일을 통해 Import address정보를 가져오자



Ollydbg Tool을 이용해서 분석한 실행파일을 불러온다

OEP는 위에서 구했듯이 0x00401000이고 ImageBase값을 빼고 입력한다음 AutoSeach클릭 !

자동으로 RVA값이 구해지고, Size는 직접 1000으로 바꿔주자

공간이 부족하면 Import address들이 다 검색되어 질 수 없다


성공적으로 IAT(Import Address Table)를 복구하였다

이제 Dump했던 파일에 해당 IAT데이터들을 Fix Dump하여 파일로 만들어준다


최종 결과이다

IAT정보를 FIx해준 마지막 파일은 정상적으로 작동하게된다






'악성코드 분석' 카테고리의 다른 글

FSG 수동언패킹 [ Lena21 ]  (0) 2018.04.14
Upack 수동언패킹 [ Lena21 ]  (0) 2018.04.14
Packing & Unpacking  (0) 2018.04.10
PE File Structure  (0) 2018.04.10
어셈블리어 정리 ( cmp & TEST & ZF & CF )  (0) 2018.04.04