type
status
date
slug
summary
tags
category
icon
password
偶然一天网上冲浪,发现一款软件,秉承着学习的态度,我再次下载下来

还是老样子,先打开PEID进行查壳

没加壳,那我们就正常打开,看下具体什么情况

看来不是先出现登录界面了,是直接嵌入到软件内了
接下来就该寻找我们的下手点了
直接点击开始
直接闪退!!什么回显也没有
用debug虫子修复载入

ok,实锤是用易语言做的软件
可以考虑用按钮断点进行下一步的破解
那我直接载入到xdbg中 先F9运行一下,让他到程序领空后
ctrl+b 搜索 FF55FC(易语言的按钮call)


ok,双击跳转过去
直接F2下断点,然后F9运行
发现程序直接闪退(并没有断在这个位置)!
那我们只好用虫子修复提供给我们的按钮断点了....
ctrl+g 输入 4C0F7D

跳转过去后F2下断点,然后运行

但是,这个作者显然想到了这个方法,所以应该是在按钮位置加了时钟,导致我们还没有人为的点击按钮,程序就断下了
那我们就直接右键,查找字符串

看能不能得到一些有用的东西

我们发现了“密码被禁用”的字符,按照逻辑来说,他应该需要先去验证密码,再去判断是密码错误,还是密码不错在,还是密码被禁用
所以我们直接双击过去

验证的位置肯定是在出现结果的上面,所以我们就直接往上面找,看有没有什么大跳转

大跳转并没有找到,但是在上方我们发现了这种字样的字符串,这种很显然是在和服务器核对密码的发包操作,看来验证的位置就在附近,所以我们直接在发包上面的小跳转下断点(肯定需要先发包验证,在收包操作,所以验证大概率会在这个下面)

我们直接在这个小跳转上下一个小断点,看一下他发包后的操作
F9运行,点击开始,直接断在这个位置了

我们F8往下一步一步的找
当我们路过这个call的时候,出现提示了

那么八成没跑了,验证call的位置就在这里面,在这个call的后面加上注释,并在该位置下断点,
下次载入直接运行到该位置
我们重新载入一下(因为该软件验证失败会直接闪退)
运行到该位置,我们直接F7进入到这个call里面去看

刚进来运行到这个call就出现了密码不正确,那我们尝试把这个位置直接nop掉(在当前位置右键---二进制---用nop填充)

然后右键---补丁--修补文件
保存到同一目录下,然后打开软件,看能否正常运行

软件并没有闪退,模拟器也自动打开!
破解成功(如果修补完文件后,软件无法正常运行,那就是nop的位置不对,也就是找到的验证位置不正确,需要进一步的去寻找关键call)
该软件还是比较简单的验证
- 作者:brown
- 链接:https://bbrownn.dpdns.org//article/0820-15-56
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。







