huangdc 发表于 2021-1-28 15:11

玩玩破解(第九集)之个人问题分享

本帖最后由 huangdc 于 2021-1-28 15:11 编辑

本篇写的是个人在做作业(第九集的exe)的时候,针对作者文章一些不理解的地方(我没看懂的地方),做一些个人阐述(破解完成后有了一些自己的认识)。

问题:
1、如何判断程序读取到“登录失败”后,需要返回几层CALL。
2、作者说的JMP和JMP下面还有一个跳转能够跳过来,在哪里?

解答:
问题1:
1、说明:在本案例中,跟着作者的思路,我们找到了程序取得“登录失败”的位置,作者也在文章中指出,我们现在停留的位置是在验证CALL与弹框错误提示之间。所以我们目前要找到软件展示错误提示的位置,本案例中就是弹框。
2、操作:一步一步F8,直到跳出弹框。


问题2:
1、说明:一开始没看懂作者说的话,后来自己找到会走向失败的流程才看懂。真正含义是我们在找出弹框的代码后,向上找到了大跳转的代码,再观察会发现上面还有个跳转会让逻辑跳过这个jmp的判断,从而导致流程走向失败!
2、把图中的je改为nop,即完成破解。




如有错误,请大家帮忙指出

huangdc 发表于 2021-1-29 14:34

ma5635 发表于 2021-1-29 12:45
但是 麻烦问下怎么具体分析哪段是:“信息”,哪段是“弹窗”,有什么代码标志么?

我理解主要在于CALL调用函数。
因为我们是根据错误信息反向找的,在不断F8,跳出的过程中,如果到了我们需要修改的代码段(即验证+提示的整个代码)那么此时代码停留的位置的上一条CALL就是信息获取的方法。

弹框就比较好确定了,就一直F8,如果程序CALL调用了一个方法,然后弹框了,那就说明弹框逻辑在这个方法里。

18581221312 发表于 2021-1-28 17:43

nice,感谢楼主分享!
4012E7的跳转不实现就不会触发“登录失败”。JE的意思是相等则跳转,将其改为JNE或nop掉都行
JE或JZ,含义为:相等则跳转
JNE或JNZ,含义为:不相等则跳

袁煜914 发表于 2021-1-28 15:31

王成 发表于 2021-1-28 15:55

小白学习中

q3125418 发表于 2021-1-28 17:07

有大佬知道win10不能执行到返回怎么解决!!!

FeiyuYip 发表于 2021-1-28 17:24

谢谢分享,第二个问题,确实想了好久。

chenkangle 发表于 2021-1-28 17:33

有点高级,没做过开发的人表示看不懂

lei122756700 发表于 2021-1-29 12:04

小白学习中

ma5635 发表于 2021-1-29 12:42

对嘛,一起讨论才有提高,我的就是研究方向错误,破解应该不彻底,登陆后有提示框,但是没得文字,还以为成功来,原来还是失败了。

ma5635 发表于 2021-1-29 12:45

但是 麻烦问下怎么具体分析哪段是:“信息”,哪段是“弹窗”,有什么代码标志么?
页: [1] 2 3 4 5
查看完整版本: 玩玩破解(第九集)之个人问题分享