动态调试 + 静态分析
if ( sub_406930(g_YourName) >= 4 ) // 检查输入的用户名 长度 必须不小于4
{
TString_To_PSTR(*(_DWORD *)(a1 + 476), (int *)&var_10);// 取得输入的用户名: UserName
nValue *= *(unsigned __int8 *)var_10;
nValue *= 2;
InitString(&x5, (__int32)&str_CW[1]); // 初始化字符串 CW
InitString(&x1, (__int32)&str_CRACKED[1]); // 初始化字符串 CRACKED
sub_406718(nValue, &pShortNum, a1, a4, v5); // 取得 CW-****-CRACKED 样式中的 **** 值
sub_4039AC(&sValidSerial, 5, x1, (int)&str___5[1], pShortNum, (int)&str___5[1], x5);// 拼成 CW-****-CRACKED 的样式
TString_To_PSTR(*(_DWORD *)(a1 + 480), (int *)&var_10);// 取得输入的序列号: Serial
sub_4039FC(sValidSerial, var_10); // v6 = 比较序列号
if ( v6 )
sub_42A170(*off_430A48, "Good job dude =)", "Congratz !!", 0);
else
sub_42A170(*off_430A48, "Sorry , The serial is incorect !", "Try Again!", 0);
}