【尚未成功的爆破】刚入门渣新的一次爆破求助。。。。。~
纯入门两天,一起玩游戏的朋友找到一个游戏服务器管理软件(VC语言编写),软件特征是加了壳(PECompact 2.x -> Jeremy Collake),QQ账号密码登录的线下注册(QQ登录但要通过他的允许才能使用软件),加群验证使用,软件目录如下:依据群内脱壳破解教程,结合网络上找寻的其他教程,现已经将软件脱壳并修改了QQ账号登录,但接下来的版本验证与加群验证并未设置jz/jnz条件,不知从何入手,所以现在将拿到软件后一系列动作记录并发上来,请各位大牛指导后续动作应该从哪个地方找寻思路
另附软件地址:链接:https://pan.baidu.com/s/1NOWPomd5KVWHQGs6CijgOQ 提取码:d9gf ,使用工具为OD及PEID,具体操作如下:
1、查壳
2、脱壳,采用的是单步跟进法
3、保存后验证是否成功
4、开始尝试爆破,因为程序是直接调用QQ登录接口,这个听别人说听麻烦的,如果使用不正确的QQ账户,会提示错误的登录信息:
所以我决定使用自己的QQ进行登录:
出现了上面图片显示的内容,依据教程,我将已脱壳的程序载入OD,通过中文智能搜索找到这个messagebox的模块信息:
于是我将判断条件做了修改,将je改成了jne
保存以后是可以跳过会员的验证,但又给我弹出版本过低的提示
于是我又去OD内找寻这个信息
但是上面没有找到关键验证信息以及关键CALL,应该是我水平不够,所以我想问各位大佬们有没有好的解决思路啊,跪谢各位大牛了~~~~~~~~~~
5、去网上找思路,我试着将一开始的会员验证je修改成jmp往下跳转
但调整过后,软件就不执行下去了,不知道是什么原因,如下:
本帖最后由 龙小贝戋 于 2020-5-4 23:18 编辑
罗萨 发表于 2020-4-28 14:32
https://www.52pojie.cn/thread-1167460-1-1.html
已做成教程
大佬,最近我已在业余时间看了我们论坛的培训课程,并结合你提供的思路攻略进行了后面的爆破,但还是出现问题且我自己无法理解,现将过程记录,请再次指正:
1、脱壳:
(上图是脱壳后的信息显示)
2、修复IAT(通过论坛教程学习)
下面为查找IAT头(右键---数据窗口---跟随----内存地址)
(下面窗口----长型-----地址)
(向上翻找至IAT头,头部为00535000)
(向下翻找至IAT尾,尾部为005358B4)
(查找基址,基址为00400000)
(程序入口为0050A135)
现在可开始计算,程序的OEP为入口减去基址,则0050A135-00400000=0010A135
RVA为IAT的头部位置减去基址,则00535000-00400000=00135000
范围大小为IAT查找的尾部减去头部,则001358B4-00135000=000008B4
现可将上述数值填写进ImportREC,导入后如下:
发现这个程序脱壳后不用修复IAT,没有无效的内容?这个还请大佬解惑,我是哪里出了差错。(使用ESP定律查找OEP后OD插件脱壳,或者与WIN7_x86系统相关?)
3、爆破
搜索字符串(右键----中文搜索引擎----智能搜索----搜索会员---定位)(这里已测试,程序会卡死,估计只是去掉了弹窗,但未去掉验证所以导致卡死)(这里我记下了00402B1E、00402B2A、00402B56三个地址,看看有没有哪些地方调用了)
跳转到这个验证函数上个函数地址以方便找到这个验证函数的段首(右键----转到----上个函数过程----下拉---找到验证函数的段首-----F2下断)
运行后F8单步跟进,中间有两个跳转(我是在两个跳转下按的F4,继续跟进后找到了大佬提示的位置,这里是否还有其他办法可以单步跟下来且不运行的操作?)
跳转下面就是大佬提示的位置,赋值、验证、跳转(我还是不理解这个地方赋值的内存地址与验证的关联,也没看见有关于00402B1E、00402B2A、00402B56的调用,还是说这个地方是在验证处往上翻第一个有关于内存赋值的功能?还请大佬解惑。)
现在我将两处位置修改汇编并保存以后,程序正常运行,就是上面与大佬有两个不同的地方,还请大佬解惑。
不过很大可能会出现程序中止的情况,不知道为什么
而且我重启机器过后,IAT貌似也会发生改变,是否是ASLR的问题?(都没办法知道这个是哪个DLL文件,还是说哪怕没有无效的IAT,都需要用LORDPE修复一次?)
龙小贝戋 发表于 2020-5-4 22:59
大佬,最近我已在业余时间看了我们论坛的培训课程,并结合你提供的思路攻略进行了后面的爆破,但还是出现 ...
首先在脱壳上你还是没有学仔细.不要照抄照搬一定要弄明白原理.不明白可以带图附上分析来论坛请教各位大佬
1.脱壳 略2.iat修复那一步
源程序跟踪到oep时不要关掉,dump出文件之后用rec选择源进程,转储时选择dump文件,说白了就是拿源文件去修复dump出来的文件.
3.爆破
A.运行后F8单步跟进,中间有两个跳转(我是在两个跳转下按的F4,继续跟进后找到了大佬提示的位置,这里是否还有其他办法可以单步跟下来且不运行的操作?)
A.单步跟踪就是运行一句的操作,没法不运行
B.跳转下面就是大佬提示的位置,赋值、验证、跳转(我还是不理解这个地方赋值的内存地址与验证的关联,也没看见有关于00402B1E、00402B2A、00402B56的调用,还是说这个地方是在验证处往上翻第一个有关于内存赋值的功能?还请大佬解惑。)
B.是的在判断之前一定会有赋值的操作,不可能去判断一个不存在的变量
关于怎么去找,在78d460处下一个硬件或者内存写入断点,重新运行程序就可以跟到赋值的代码了.
我选择直接来到段首,是因为该软件验证并不复杂,只有简单的判断
在编程中,既然是判断就一定会通过某地址保存的数据来当作成功与否的依据,也就是
a为验证数据,b为验证信息
if a=b:正确代码 ?失败代码
那么在反汇编中,一定有一个地址保存的是a数据并且会通过cmp指令来进行判断,根据这一原理不难找到关键点.
程序终止的情况有两种,一种是你修复iat的问题,另一种是有暗装,这需要你自行调试了,你这里应该是修复iat的问题
最后一个问题是你选错进程啦;www
因为他在qq群论坛里面放了数据,而这个功能已经下线了 huzpsb 发表于 2020-4-27 22:00
因为他在qq群论坛里面放了数据,而这个功能已经下线了
这个是没办法绕过的么? 龙小贝戋 发表于 2020-4-27 22:15
这个是没办法绕过的么?
你要是有数据你不如自己写一个wg... huzpsb 发表于 2020-4-27 22:17
你要是有数据你不如自己写一个wg...
没有源码。。。只有成品软件。。。 龙小贝戋 发表于 2020-4-27 22:17
没有源码。。。只有成品软件。。。
我说的是,至少我,一般来说获取的数据都是关键数据
没有就剩个UI... huzpsb 发表于 2020-4-27 22:30
我说的是,至少我,一般来说获取的数据都是关键数据
没有就剩个UI...
好吧,我继续等等看还有没有大神帮帮我 版本过低那里,明显的有一个跳转,代码左侧有一个>,跟过去改了就可以 罗萨 发表于 2020-4-27 23:27
版本过低那里,明显的有一个跳转,代码左侧有一个>,跟过去改了就可以
....。。。不行,改过去还是一直卡在正在处理界面。。 龙小贝戋 发表于 2020-4-28 09:59
....。。。不行,改过去还是一直卡在正在处理界面。。
软件发个蓝奏
页:
[1]
2