readme.txt
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- AuthKey = un_md5(DecryptKey) + " " + un_md5(EXE's Key) -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- Ex:) DecryptKey = 1dfb6b98aef3416e03d50fd2fb525600 EXE's Key = c944634550c698febdd9c868db908d9d => AuthKey = visual studio -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- By Pyutic
Exeinfo PE
UPX로 패킹이 되어 있다.
Analysis
언패킹된 바이너리를 실행해보면,
EXE corrupted 메시지가 떠서 패킹된 바이너리를 상대로 디버깅을 진행해보았다.
OEP는 0x442B4F이다.
Exe의 유효성 검사를 진행하는 sub_4508C7에서 에필로그 바로 전 과정에 브레이크포인트를 걸고,
[esi+0Ch] 주소를 확인해보면,
Stack[00001110]:0087FC44 a220226394582d7 db '220226394582d7117410e3c021748c2a',0
exe key값을 확인할 수 있다.
extract 끝난 뒤의 0044834B 주소에다가 브레이크포인트를 걸고
debug059:02E30700 aCompilerV10485 db '; <COMPILER: v1.0.48.5>',0Dh,0Ah debug059:02E30719 db 'inputbox,pwd',0Dh,0Ah debug059:02E30727 db 'if (pwd== "54593f6b9413fc4ff2b4dec2da337806"){',0Dh,0Ah debug059:02E30757 db 9,'MsgBox',0Dh,0Ah debug059:02E30760 db '}',0Dh,0Ah
걸리면, Script 압축해제가 끝난 후의 내용은 [ebp+64h]([ebp+6Ch+Block])주소에 적힌 주소를 확인해보면 알 수 있다.
220226394582d7117410e3c021748c2a -> isolated
54593f6b9413fc4ff2b4dec2da337806 -> pawn
FLAG
isolated pawn