|
发表于 2009-3-3 22:21:56
|
显示全部楼层
这个IDA 真是太棒了... 和看vc一模一样//
signed int __stdcall DialogFunc(HWND a1, UINT a2, WPARAM a3, LPARAM a4)
{
UINT ST14_4_0; // ST14_4@0
signed int result; // eax@2
int v6; // eax@9
LRESULT v7; // eax@11
int v8; // esi@11
signed int v9; // ecx@13
signed int v10; // eax@14
signed int v11; // esi@15
if ( a2 == 273 )
{
if ( a3 == 1 )
{
v6 = SendDlgItemMessageA(a1, 3, 0xEu, 0, 0);
dword_4021AF = v6;
if ( !v6 || v6 > 8 || (v8 = v6, v7 = SendDlgItemMessageA(a1, 4, 0xEu, 0, 0), !v7) || v8 != v7 )
goto LABEL_26;
SendDlgItemMessageA(a1, 3, 0xDu, 8u, (LPARAM)byte_402160);
SendDlgItemMessageA(a1, 4, 0xDu, 0x10u, (LPARAM)&unk_402179);
v9 = -1;
while ( 1 )
{
++v9;
v10 = byte_402160[v9];
if ( !v10 )
break;
v11 = -1;
if ( v10 < 65 || (unsigned int)v10 > 0x7A )
goto LABEL_26;
if ( v10 >= 90 )
v10 -= 32;
do
++v11;
while ( v10 != byte_402017[v11] );
*(int *)((char *)&dword_402194 + v9) = byte_40203C[v11];
}
if ( sub_401244(&unk_402179, &dword_402194, dword_4021AF) == 1 )
{
MessageBoxA(
0,
"Congratulations! Please send your keygen (working one) to [email protected]!",
"Duelist's Crackme #4",
0x2000u);
result = 1;
}
else
{
LABEL_26:
MessageBoxA(
0,
"Your registration info is invalid... Note that most of the special chars may raise registration problems!",
"Duelist's Crackme #4",
0x2000u);
result = 0;
}
}
else
{
if ( a3 == 2 )
goto LABEL_25;
result = 0;
}
}
else
{
if ( a2 != 272 )
{
if ( a2 != 16 )
return 0;
LABEL_25:
ExitProcess(ST14_4_0);
}
result = 1;
}
return result;
} |
|