CAFE

잡템

REC Decompiller C언어 디컴파일러

작성자운영자|작성시간12.03.17|조회수12,549 목록 댓글 0

http://www.backerstreet.com/rec/recdload.htm

 

 

첨부파일 RecStudioWin.zip

 

사용법:http://www.backerstreet.com/rec/en/how_to_use.html

Use File > New Project... to load an executable file. Executable files can be Windows PE files (.EXE, .DLL), Linux ELF files, Mac OS X MachO files or raw files. The level of support for each format varies, with Windows PE having the best support.

 

압축풀고 BIN폴더 안에 있는 실행파일을 실행합니다. 그리고 File> New Project로 실행파일을 엽니다. 실행파일이라 함은 윈도우는 EXE DLL이 되겠고 리눅스는 ELF 그리고 Mac OS X MachO files 또는 raw 파일들이 되겠습니다. 하지만 REC는 Windows 실행파일을 가장 잘 지원해 준답니다.

 

Decompile> Save to File눌러보시면 REC라는 확장명으로 저장이 되는데요. 그놈 메모장으로 열어보면 C code형태로 저장이 되어 있을 거예요.

 

 

저는 WinXp notepad.exe로 테스트 해보았는데요. aa.rec라는 이름으로 저장하고 메모장이나 에디터로 불러오니 아래와 같은 C코드가 생성되었네요~ ㅎㅎ

 

L01001929()
{
    intOrPtr* __esi;
    signed int _t1;
    signed int _t2;

    _t1 =  *16819368;
    __esi = __imp__GlobalFree;
    if(_t1 != 0) {
        _push(_t1);
         *__esi();
    }
    _t2 =  *16819372;
    if(_t2 != 0) {
        _push(_t2);
         *__esi();
    }
     *16819368 =  *16819368 & 0;
     *16819372 =  *16819372 & 0;
    return;
}

L0100195D(_unknown_ __ecx)
{
    short _v8;
    _unknown_ __ebp;
    _unknown_ _t4;
    _unknown_ _t5;
    intOrPtr _t6;
    _unknown_ _t7;

    __ecx = __ecx;
    _push(__ecx);
    _push(2);
    _push( &_v8);
    _push(13);
    _push(1024);
     *16819428 = 16801635;
     *16819436 = 12;
    GetLocaleInfoW();
    if(_v8 != 49) {
         *16819408 = 2500;
         *16819416 = 2500;
         *16819376 = 40970;
        _t6 = 2000;
    } else {
         *16819408 = 1000;
         *16819416 = 1000;
         *16819376 = 40966;
        _t6 = 750;
    }
     *16819404 = _t6;
     *16819412 = _t6;
    return;
}

L010019E0(int _a4, intOrPtr _a8)
{
    _unknown_ __ebp;
    _unknown_ _t3;
    _unknown_ _t7;

    InvalidateRect( *16816184, 0, 1);
    asm("sbb eax, eax");
    MoveWindow( *16816184, 0, 0, _a4, _a8 - ( ~( *16816192) &  *16819936), 1);
    return;
}

L01001B99(intOrPtr _a4)
{
    _unknown_ __esi;
    _unknown_ __ebp;
    _unknown_ _t3;
    _unknown_ _t4;

    _push(_t4);
    _push(0);
    _t3 = _a4 - 1;
    _push(_t3);
    _push(187);
    _push( *16816184);
     *SendMessageW();
    if(_t3 != 255) {
         *SendMessageW( *16816184, 177, _t3, _t3);
         *SendMessageW( *16816184, 183, 0, 0);
    }
    _pop(__esi);
    return;
}

........ㅋ 여튼 이런식으로 나와요 ㅋㅋ

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼