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;
}
........ㅋ 여튼 이런식으로 나와요 ㅋㅋ