IDA反汇编之后的代码,求解释
求解跳过v12内行的if验证
v17[0] = 20;
v18 = 0i64;
v17[1] = 20;
v17[2] = 37;
v17[3] = 4;
sub_EB1010(&Format, v3);
v5 = std::istream::operator>>(std::cin, &v18);
std::istream::operator>>(v5, v14);
v6 = HIDWORD(v18);
v7 = 0;
v8 = HIDWORD(v18);
v9 = v18;
v16 = 32;
do
{
v10 = ((v7 - 1640531527) >> 2) & 3;
v9 += (((v7 - 1640531527) ^ v6) + (v6 ^ v17[v10])) ^ (((16 * v6) ^ (v6 >> 3)) + ((v8 >> 5) ^ (4 * v6)));
v7 -= 1640531527;
v6 += ((v7 ^ v9) + (v9 ^ v17[v10 ^ 1])) ^ (((16 * v9) ^ (v9 >> 3)) + ((v9 >> 5) ^ (4 * v9)));
v11 = v16-- == 1;
v8 = v6;
}
while ( !v11 );
v18 = __PAIR64__(v6, v9);
// 9
if ( v9 != -1416191457 || (v12 = "Sucess,This is ture token!!!\n", v6 != 1570219490) )
// /
v12 = "Error,This is false token!!!\n"; // /
sub_EB1010(v12, v15);
getchar();
return 0;
}