逆向replace

花了一些时间了解了一篇逆向题,对于我来说,是比较难了,看了别人的解题步骤明白了一点点,
这个可执行文件首先打开看看什么情况,如下:
image
神奇了,输入别的显示不出来,只能输入数字。可以判断里面有只能接受数字的函数,可是就算输入数字,点击check,程序崩了。
拖进IDA,看看何方神圣。
image
拖进去,shift+f12寻找字符串correct!一步步来到text段后发现,程序跳过了,correct。如下:
image
在00401071的位置jmp 401084,完美错过了correct。要想程序执行correct这一步,那么要走到401073,
在IDA里还可以找到与“只能输入数字”有关的函数,GetDlgItemInt,它的地址为
image
以上地址则是完成解题的关键。由于这里跳过了correct,只能动态调试了,再将文件拉进od,找到这些地址,
首先找到correct,我们发现在correct上面有控制输入的函数GetDlgItemInt。
image
重载输入0,f8步过,到4010A9,的时候程序跳到了莫名的地方,然后不动了。那就在这里断点,看看这个函数作什么妖。
image
进入后发现它将90,复制给了eax。相当于将eax Nop掉,而且当输入0测试的时候,eax为601005CB,而输入数值为12后,eax数值为601005D7
image
而,可知,601005CB+输入的数值=eax,则,可以601005Cb+输入值=0x100401071(401071则是correct的地址了)
计算器可算出应输入:2687109798。replace ,很名副其实。
链接
密码:e1sb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值