본문 바로가기
악성코드 정보

Tool을 이용한 초간단 언패킹! (UPX편)

by 알 수 없는 사용자 2010. 3. 18.

오늘은 기존에 했던 메뉴얼 언패킹이 아닌 다소 쉬운 방법으로 tool을 사용한 언패킹(unpacking)을
해보도록 하겠습니다. 

그전에 패커(Packer)에 대해 다시 한번 간단히 정리 해볼까요!


패킹(packing)은 실행파일 포장이라는 개념으로 쉽게 이해하시면 될 것 같습니다.

아래 그림은 파일이 패킹되어 메모리에 올라가는 일괄의 과정을 표현한 것으로서 패킹된 파일은 메모리 할당시 재배치(Relocation) 과정을 하지 않기 위해 target 프로그램과 동일한 위치에 .txt 섹션을 배치 합니다. 
Uninitialized data section은 언패킹 후 메모리에 올릴 장소입니다.


언패킹을 하기 위해서는 먼저 Packer Detection(탐지)을 통해 패커를 확인하는 작업이 선행되어야 합니다.
패커를 확인하는 가장 손쉬운 방법은 잘 알려진 패커 탐지 tool을 이용하는 것이며 탐지 tool로는 PEID, DIE,
RDG, exeinfo PE 등 이 있습니다.

오늘 시연에 사용된 tool은 upx와 Exeinfo PE 이며 upx는 win32 콘솔 버젼으로 언패킹하려는 파일과 
동일한 폴더에 존재하여야 합니다.

그럼 이제부터 초간단 언패킹의 세계로 빠져 볼까요?


패킹된 샘플 파일을 Exeinfo PE 를 이용하여 정보를 확인 해 보니 UPX로 패킹되어 있다는걸 손쉽게 확인 할 수 있습니다.
이제 이 정보를 가지고 upx tool을 사용하여 언패킹을 해보도록 하겠습니다!
순식간에 지나가니 정신 바짝 차리셔야 합니다~

사용된 upx tool의 기능에 대한 설명이 보이는 군요.
(언패킹 뿐만 아니라 패킹도 가능하다라는건 두말 하면 입 아프죠?)
 
패킹이 풀리면서 늘어난 파일 사이즈와 "Unpacked 1 file" 이라는 결과가 확인 되었습니다.

대상 파일을 Exeinfo PE tool로 다시 확인해 보면 최종적으로 언패킹 된 걸 확인 할 수 있습니다.

글을 마치며...
tool을 사용하는 방법은 언패킹 관련 기법중 아주 기초적인 내용입니다. 차근차근 기초부터 쌓아가다 보면 수작업으로 하는 고급 언패킹 기술도 그리 어렵지 않게 해결할수 있겠죠 ^^?




댓글