发表于 2016-2-16 00:08

申请会员ID:hk.ming【未报到,账号删除】


1、申 请 I D:hk.ming
2、个人邮箱:353648834@qq.com
3、原创技术文章:(百度云管家)破解无限试用加速,及对其本地文件校验的分析


本人高中狗一名,仅抱着对计算机的热爱,尝试着编写各种程序,软件,补丁。

最近,在百度云下载一个大文件的时候,发现需要安装百度云管家,下载时,速度只有200~300KB(带宽8M平均速率600KB左右),百度这种大公司的网盘一般可以达到最大速率,很明显被限速了。
这时弹出试用加速,是一个300秒的倒计时。


利用CE搜索,锁定倒计时的秒数,发现只是本地的计时。(可能只是本地的下载限速,百度还真是坑啊!)

利用得到的内存地址,下软件断点,得到写入数值的代码位置

为了一劳永逸,把减秒数的代码NOP掉,保存文件


发现居然无法打开了。。。郁闷,很快想到了有代码校验

用OD打开百度云管家,在不运行起来的情况下,修改代码,发现动态修改是没有问题的,证明是本地文件的校验

继续用OD追踪,发现最后是调用了 kernel32.ExitProcess 退出程序的,下些断备用。





观察堆栈,追踪调用


发现并没有隐藏调用,不是动态校验意味着无法通过在代码部分下内存访问断点,追踪不到校验代码。没有隐藏调用,我们就一层一层往上找


通过观察堆栈,把调用一级一级往上翻


这时,这里的一个调用我发现比较重要


由于退出部分的代码是一个模块来的



这时主线程调用模块的退出代码,很明显,我们已经离校验代码越来越近了



回到了EXE模块的代码区,因为已经离校验代码很近了,尽量代码都走一遍,这时,功夫不负有心人,发现了一个重要的字符串!


获取文件的路径,这部分往下走应该就是校验代码了,换成未修改的原文件,走一遍正常的,把跳转记下来


把整个校验循环跳掉,直接进入初始化的入口


初始化里还有一些校验,与原文件的加载对比,通通跳干净

好了,发现可以运行起来了,很不错!,保存文件


再运行时,发现打不开了!而且还是 kernel32.dll 出错了,晕, kernel32怎么会出错呢。。。



直接OD运行起来,一直跟踪,发现从这里开始就出问题了

跳到一个莫名的地方(两个命令语句的中间)

与原文件跳转对比,这是跳去 kernel32 的跳转,而且没有重定位,怪不得直接保存就出错了


初步猜测,这是由程序自身进行此处的重定位,既然如此,下面又有空位,我们自己重定位吧
先自身代码定位,baiduyunguanjia.exe 居然是动态加载的,又不是托管语言,真是夸张
发现寄存器有现成的

当中的EDX指向某一个地方,(先测试随后的代码会不会用到寄存器,随便乱用,可能崩溃,前四个置0后运行发现没问题,前四个随便用)
自身代码位置是相对不变的,baiduyunguanjia.exe自身代码相对不变,kernel32.dll自身代码也相对不变,我们只需找出 kernel32.dll某一处的位置再偏移就行了


随便找到一个指向kernel32.dll某一个API的位置,程序自己已经重定位好了的,我们读取就行


偏移到API代码的位置


读取再读取,ECX中的值就是kernel32.dll中那个API的值了


计算一下,得到所跳位置的相对地址

由于一切地址都是相对计算而来,那么重启后计算所能跳对应的位置。

重新打开,程序正常,即代码保护已经去除了。点击试用加速后倒计时不变保持在299秒

当前百度云版本号为5.3.6


Hmily 发表于 2016-2-16 18:02

ID:hk.ming
邮箱:353648834@qq.com

申请通过,欢迎光临吾爱破解论坛,期待吾爱破解有你更加精彩,ID和密码自己通过邮件密码找回功能修改,请即时登陆并修改密码!
登陆后请在一周内在此帖报道,否则将删除ID信息。

PS:根据lkou大牛说的,文章中只是处理了加速时间,新版其实还校验了加速次数,应该不够完美的,期待完善后发布到脱壳破解区。

永恒直边 发表于 2016-3-9 18:12

@hk.ming 来·报道

Hmily 发表于 2016-3-14 10:37

未报到,账号删除。
页: [1]
查看完整版本: 申请会员ID:hk.ming【未报到,账号删除】