Bootstrap

新手逆向实战三部曲之三——通过进入关键call追码注册软件(进阶)

教程开始:
通过前两次的学习,是不是感觉逆向也蛮有意思的呢,感兴趣的同学可以先看看前二次的内容再继续向下学习
新手逆向实战三部曲之一

新手逆向实战三部曲之二
有了上次爆破的基础,这次便省力了许多,这次从载入开始,虽前头的几个步骤与之前相同,温故而知新嘛(也可直接往后看)
用OD载入已脱壳并修复的程序,在下面的command命令一栏输入bp MessageBoxA之后回车 


重载运行程序,点注册按钮输入注册信息,这里邮箱: [email protected],注册码:11111111(随意填写但尽量简单易于分辨最佳。与爆破不同的是输入的注册信息在追码时会出现,也是 我们成功追码的基础)

点击确定之后程序断在图示位置

在右下角标记的一行右键,反汇编窗口中跟随来到这里

找到使jmp失效的跳转

向上来到这个跳转的来源

00406889  |.  E8 924F0000   |call 脱壳已修.0040B820
0040688E  |.  83C4 08       |add esp,0x8
00406891  |.  85C0          |test eax,eax
00406893      74 6F         |je X脱壳已修.00406904(这个跳转的实现与否取决于上面的这个call)
一般情况关键call就在关键跳的不远处,可见这个call应该就是我们要找的关键call了,在此处F2下断

重载程序,重复之前的注册步骤,程序断在关键call处,进入这个call

之后F8单步向下,在此过程中要时刻注意右上角寄存器数值的变化
下图中的call为读入邮箱

下图的call为读入注册码

下图的call为用邮箱算出真正注册码,即为右上角的267527263(具体算法本次不深入研究,有兴趣的可自行尝试)

追码结束关闭OD,打开软件,输入邮箱 [email protected];注册码267527263即可注册成功

教程结束,感谢大家的支持,新手教程,大牛勿喷,希望能有所收获                     
;