좀 지난 게임의 클라이언트를 재미삼아 분석하고 있다.
그런데 디스어셈블러에 로드시키니 패킹이 되어있는 것 같아서
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.
구글에서 관련 내용을 찾아보니 스택오버플로우에서 아래와 같은 질문글을 확인할 수 있었다.
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.