下载之后查看是UPX壳的,先脱壳。
拖入IDA,查看伪C代码。
一进来就发现了main,但是在里面会看到堆栈报错的问题,其上一条命令就是常规的动态运算反调试,40102E+1=40102F,在2F处重新生成代码即可,2E处的指令NOP掉。
jnz short near ptr loc_40102E+1跳转到下一行代码,不跳转也是下一行,花指令阻碍ida反汇编
然后选中main头,按P键更新代码,发现main函数出来了。
int __cdecl main(int argc, const char **argv, const char **envp)
{
signed int i; // [sp+10h] [bp-14h]@1
char v5[16]; // [sp+14h] [bp-10h]@1
sub_401140(aGoThroughTheMa);
scanf(a14s, v5);
for ( i = 0; i &