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

    답글 남기기

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다