Crackme是一种特别设计的小程序,其主要目的是测试程序设计人员的逆向工程技能。
方法一
输入密码会弹出一个窗口

下一个对话框断点
bp MessageBoxA
断下后返回到用户代码
00422EF5调用了00422E00弹窗了,上面还有个cmp用于比较用户输入的字符长度,jpg跳转未实现,给他改成jmp

00422F09弹窗失败

跟进去看看,有个大跳转

并且跳过去直接call 00422E00,刚才就是call这个弹窗失败,这里就不能让他跳转

nop掉je跳转

又发现一个大跳转

同样跳过去调用了00422E00,再次nop掉

往下跟到00423138失败了

跟进去在00423264有一个判断,跳转未实现,下一步要调用00422E00,就是弹窗失败

改成jmp继续

00423356弹窗失败

再跟进去,004245E7跳转未实现,下一步就是调用弹窗失败的函数

换成jmp继续跟,这个je要nop掉,不然直接到失败对话框了

Nop掉下一个函数就是成功的对话框
00424694

方法二
目前知道了00429631是“算你厉害”
00422EF0地址的call换成429631

