REVERSING] UPX Unpacking Prevention Bypass

노션으로 옮김·2020년 5월 8일
2

skills

목록 보기
30/37
post-thumbnail

좀 지난 게임의 클라이언트를 재미삼아 분석하고 있다.

그런데 디스어셈블러에 로드시키니 패킹이 되어있는 것 같아서

pe 헤더를 확인해봤다.

upx 패킹으로 나와있어서 upx.exe를 이용해 언패킹을 시도했다.

하지만 아래와 같이 언패킹되지 않았다.

\Reversing\upx> .\upx.exe -d .\~~~.exe
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2013
UPX 3.91w       Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
upx: .\~~~~.exe: CantUnpackException: file is modified/hacked/protected; take care!!!

Unpacked 0 files.

구글에서 관련 내용을 찾아보니 스택오버플로우에서 아래와 같은 질문글을 확인할 수 있었다.

https://reverseengineering.stackexchange.com/questions/3323/how-to-prevent-upx-d-on-an-upx-packed-executable

upx의 섹션 헤더의 이름을 변경하면 upx.exe는 언패킹하지 못했다.

내가 분석하는 게임도 같은 경우라고 생각했다.

PE헤더를 다시 보니 vmp라는 이상한 값으로 설정되어 있었다.

정상적인 upx 패킹 프로그램은 아래처럼 각 섹션이 UPX..로 시작한다.

Hxd을 이용해 게임프로그램의 UPX섹션 값을 UPX..로 모두 변경해주었다.

그 후 다시 시도하니 언패킹에 성공했다.

\Reversing\upx> .\upx.exe -d .\~~~.exe
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2013
UPX 3.91w       Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   7262208 <-   1624064   22.36%    win32/pe     ~~~.exe

Unpacked 1 file.

0개의 댓글