吾爱破解---破解入门学习3
# 吾爱破解---破解入门学习3
通过call调用的弹窗以及OD的堆栈return返回区来定位,找到关键函数,实现绕过某些弹窗,或修改数据跳转条件
(相比于之前通过具体字符串定位,这种做法好像变得复杂了,不过理解地似乎更深刻了,通过弹窗来定位)
# 题目一:一次call调用
把目标文件仍到OD,在插件中找到 API断点设置 --> 常用断点设置 --> MessageboxA断点(弹窗),F9调试,直接点击登录,在OD中指令区和堆栈区已经定位到了第一个弹窗“请输入密码”
右下角的堆栈区可以看到这个MessageboxA弹窗信息,下面有多条return返回,堆栈的性质都了解,那么跟进到第一条返回语句
效果和中文搜索引擎效果好像一样...,不管了。往上看实现
mov eax,0x1
text eax,eax
1
2
2
这默认不输账号密码应该是弹的,那么把他改成0,后面代码不管看懂看不懂应该都不弹了,修改后再次调试。不输账号密码已经不弹了。
同样,再次调试,不输密码直接登录,前面打的弹窗断点还在,定位到了“错误”的弹窗
跟进第一条返回,看到弹窗的判断,成功或失败似乎一定会返回一条,绕过错误的弹窗没有意义了直接把正常的弹出来。
两种方法。
- 修改eax值
- 修改je指令为nop
# 题目二:多次call调用
中文引擎看有几个弹窗提示,弹窗下断点直接梭
测试发现第一条,长度限制的弹窗,我们不输密码并不会触发,就不管他了,可有可无
call的第一条return返回定位,看到je指令触发弹窗,把je改成jmp来跳过第一条长度的限制
同理把后面的账号密码提示弹窗的je指令也改成jmp,直接跳过
最后定位到失败的弹窗。修改je指令为nop,不能修改为jmp,否则就直接弹错误弹窗了
最后:我发现je指令前大多都会有一个
mov eax,0x1
je 00XXXXX
1
2
2
改eax的值或修改je指令为nop效果是一样的
另一种解法:
把文件开头的jie命令的跳转地址直接修改为成功的弹窗
找一下成功call前的一句,记下地址 004015AF
jie 004015AF
1
修改并调试
编辑 (opens new window)
最后一次更新于: 2024/09/07, 22:30:21