这么看又是一道猜密码的题
ida看着有些问题,同学说要栈修复,我做的逆向少不知道是啥。。。所以就看的汇编
往下看到这里,有了 scanf ,所以就是要输入字符串,之后进行 strlen 函数,然后看到cmp那一句,与 0x18 比较,
所以字符串大小必须是 0x18 大小,也就是 24
而且注意到我们输入的字符串存在了 [ebp+var_96] 这个位置
这里能看到,输入的大小不是24就输出 Wrong
之后往下走,能看到 [ebp+var_96] 传给eax,然后依次传给 wrong 函数,和 omg 函数
wrong函数逻辑很简单,,i 作为刚才输入字符串的索引,i 是偶数的时候这个字符 ^= i,,,,i 是奇数的时候,这个字符 -= i
omg 的逻辑是我们输入的字符与标准比较,这个标准就是 0x4030c0 那个位置的字符串
a = [0x66,0x6b,0x63,0x64,0x7f,0x61,0x67,0x64,0x3b,0x56,0x6b,0x61,0x7b,0x26,0x3b,0x50,</