vulpe 发表于 2021-1-31 18:02

【纯小白】【玩玩破解,写给新人看(第六集) 】跳过-实践

本帖最后由 vulpe 于 2021-1-31 18:09 编辑

学到第六集了,感谢大佬@yyhd 的教程。
继续实践,大佬在第六集中讲了跳过call,我个人感觉是跳过弹"登录失败"的那个call,不过要怎么跳过,得看情况,有一次就行的,也有需要多次的。
大佬给的CM中,一个是只需要一个“返回到”就可以破解,一个需要多次“返回到”。
先来练习第一个----只需要一个“返回到”即可破解的:
还是老样子,打开OD,拖入CM软件,这里用到了一个下断点的命令:BP,需要在命令栏输入BP MessageBoxA,在数据区的下面输入:

这样就给调用MessageBoxA的地方下好了断点,然后F9运行程序,随便输入,点击确定后,会在MessageBoxA调用处停下来,在右下角的堆栈区可见:

地下的地方,是即将要执行的地方,但未执行,那么堆栈区中,在MessageBoxA下面最近的一个“返回到”便是刚刚执行了的,需要优先追踪。鼠标右击这个“返回到”,选择:反汇编窗口跟踪,则代码区会转至该“返回到”的call执行结束处:

接着,在代码区往上一行,就是一个call,而要做的就是跳过这个call,不让他执行,怎么跳过,去上面代码处找有没有跳转语句,恰好有个jmp,可以跳过,不用做处理了:

但是,在这个jmp下面一行前面有个”>“箭头说明,还有其他语句会跳过来,跳过来后会依次执行下去,那这个call就还会执行,所以得再往前找那个跳过来的语句,我们可以左键点一下“>”处的语句,便可看到是哪跳过来的:

那目标就很明确了,修改这个je为nop,不让他跳转到那个mov语句,那么程序执行到此,会顺序往下执行,直到执行到上面说的那个jmp时就发生跳转,自然就跳过了那个call,也就破解成功了,再把程序保存起,试下是不是输入任意就提示登录成功了呢:


然后这个多次“返回到”程序好像有问题,打不开(附带一句,win10真强,我把自带的windows defender都通过注册表禁用了,还能给我灭了)。但思路应该都是一样,当发现没有任何可以跳过那个call的,就继续从“返回到”最终上一个call,直到找到为止。

vulpe 发表于 2021-2-1 09:44

尼阿爸 发表于 2021-2-1 01:16
我在命令栏输入BP MessageBoxA了 ,后来每次都运行都不会完整,老是一半自动断点,这个东西怎么关掉啊, ...

页面上应该有个b符号,点进去可以看到所有下的断点,右键删除,然后ctrl+F2重载即可,或者OD-->选项-->调试选项-->异常,把里面的√全部去掉,再Ctrl+F2重载

juewang1314 发表于 2021-1-31 18:50

谢谢帅哥的教程。

风入白袍 发表于 2021-1-31 19:03

感谢楼主的分享教学

A888888440 发表于 2021-1-31 20:02

很棒,谢谢楼主分享!

shiona1221 发表于 2021-1-31 21:36


很棒,谢谢楼主分享!

无秽之鸦 发表于 2021-1-31 22:08

感谢楼主分享,但看不懂{:1_937:}

努力的小七 发表于 2021-1-31 22:36

不错,值得学习

baozitou6 发表于 2021-1-31 23:00


感谢楼主分享

hubohang 发表于 2021-1-31 23:13

很棒,谢谢楼主分享!我也是新人:Dweeqw

尼阿爸 发表于 2021-2-1 01:16

我在命令栏输入BP MessageBoxA了 ,后来每次都运行都不会完整,老是一半自动断点,这个东西怎么关掉啊,删掉字符运行还是一样
页: [1] 2
查看完整版本: 【纯小白】【玩玩破解,写给新人看(第六集) 】跳过-实践