日拱一卒——160个crackme之#1

运行程序:
这里写图片描述

这里写图片描述

左边按键:
这里写图片描述

右边按键:
这里写图片描述

干掉第一个画面

上OD,找strings:
这里写图片描述

定位到:
这里写图片描述

在retn处打断点,发现retn返回到这里:
这里写图片描述

那42563D处的call肯定调用了第一个画面里的对话框显示程序:)

重新运行程序,定位到42563D处,将call指令改成jmp指令:
这里写图片描述

再执行,提示:
这里写图片描述

嗯。。哪里肯定弄错了。。将修改后的程序另存为。重新运行原程序,在00425648打断点,执行到此处:
这里写图片描述

运行修改后的程序,在00425648打断点,执行到此处:
这里写图片描述

嗯,才发现之前修改的jmp指令有问题,其错过了栈和eax的恢复工作。。嗯,重改:
这里写图片描述

另存为Acid burn_1.exe,运行,嗯,这下没有第一个画面了。

干掉Serial/Name验证

当输入的Serial/Name不正确时,会:
这里写图片描述

祭出string大法,发现有两处:
这里写图片描述

不管,在两个地方都打断点。运行,填入Serial和Name,看到底会触发谁。程序在0042FB1F停下:
这里写图片描述

可以看到是0042FB03处的跳转因而到了这里,保险起见验证了一下,果然。
所以直接将0042FB03处的跳转指令改了,鉴于这里只有两字节的空间,要改成jmp xxx的形式不太现实,所以只是改了原指令的目标地址:
这里写图片描述

好了,这下不管输入什么,都是:
这里写图片描述

干掉Serial验证

当输入的Serial不正确时,会:
这里写图片描述

祭出string大法,再定位到程序里:
这里写图片描述

嗯,这完全和之前是一样的套路嘛。好吧,修改跳转指令:
这里写图片描述

再执行。哦也,搞定!
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值