吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3834|回复: 2
收起左侧

[会员申请] 申请会员ID:kcloc【申请通过】

[复制链接]
吾爱游客  发表于 2016-1-22 16:27
1、申 请 I D:kcloc
2、个人邮箱:lby62318881@163.com
3、原创技术文章:


我之前破解过一款安卓的COC外挂 叫 小白精灵
官网:http://www.dummysprite.com/GW.php
不过现在这个款软件作者的原因 已经废弃了

当时花了我1个多星期的时间,我以前做过安卓的开发,不过破解也比较碰运气。
先来看下软件界面吧,我用的模拟器是靠谱助手
F8LA2A7HJS}Y8}P@4)0GN@B.png


注册登陆之后直接运行就行了

这个软件初始赠送2小时免费试用的时间,我的破解就是从这两个小时入手,让破解的时间无限期。
再来看看我用过的工具(这个工具百度都能找到),比较乱,破解的过程主要还是分析。
QQ截图20160122151710.png
安卓APK解包的指令如下,它跟目录有关,我为了方便 直接放在D盘,我们先执行“解源码”再执行“解包”
QQ截图20160122151823.png
解好的源码是 .jar 结尾的  用jd-gui.exe打开它。
QQ截图20160122152209.png
左侧有4个大类,里面的文件几乎被我看遍了,第一个是安卓自带的安卓包,第二个是软件的执行代码,第三个应该是软件在后台操作COC所执行的脚本,第四个我猜是触摸驱动。
QQ截图20160122152523.png
第二项展开后就如上图,文件非常非常多,有注册用的,购物用的,等等
启动COC程序的主要代码在这个文件里,
QQ截图20160122152806.png
而且它这个文件里面既有runapp函数 又有startapp函数,看的我云里雾里,
QQ截图20160122153028.png
那就先来分析RUNAPP函数
前面一些语句都是检查各种状态,直接忽略。
jniutil.Toast是一个显示函数,他能显示文字提示。
再往下看 如下
QQ截图20160122153531.png
上图是比较重要的地方,至少能看到5个东西,都是蓝色的字体,“status” “value1” “value2” “value3”“version”
version是版本号,这个不用质疑,我想跟着这些函数追踪下去,但是追踪不到,因为下面都是乱码,加密过的,看不了。
但是代码里能看出来 value3 是跟 version 进行比较,在jniutil.VersionCompare这个函数里。
所以确定value3和version 两个分别是本地和服务器版本号,
分析到这里停一停。

我们看下解压包解出来的文件
QQ截图20160122154345.png
主要的程序都在smali里面,这里用的是smali语言,一般人还真看不懂。
按目录找到DummySpriteWindow.smali这个文件,再定位到RUNAPP这个方法,再慢慢找到我们要研究的value1和value2这个位置
QQ截图20160122154615.png

但是找了好久都找不到,为什么呢?
后来我通过定位GetFileNameWithoutExt这个函数来找,原来不是在这个smali文件里,
在一个叫DummySpriteWindow$1Listener的smali文件里。
QQ截图20160122155131.png QQ截图20160122155203.png
打开DummySpriteWindow$1Listener.smali 如下,这里有我们要的value1 value2 和status,看来没找错。
QQ截图20160122155543.png
接下来就要用到jniutil.Toast这个函数了,用它把value1和value2的值显示出来,
所以我就在DummySpriteWindow$1Listener.smali 里赋值了
  invoke-static {v6}, Llibvitax/util/jniutil;->Toast(Ljava/lang/String;)V这句代码
把value1和value2对应的变量名填进去,再把程序打包好,装到模拟器里,运行的时候value1显示的是一串很长的16进制代码
value2显示的是一个数字。
经过分析对比,value2显示的是剩余使用时间,
value1我猜测是程序的一个KEY,而且每次都不会变,当我用一个试用时间用完的账号登陆时,这个value1显示的是“”像这样的空。
我把这个KEY记录下来,再进到DummySpriteWindow$1Listener.smali 里,在GetValue函数之后把这个KEY 这个赋值给value1的变量
再给value2赋值一个很大的时间,用如下语句
const-string v7, "f423434523452fbac547548"  和 const v6, 0x7f0800df
因为一个是数字变量一个是文本,所以不太一样。
这样重新打包之后,我用了一个试验时间用完的账号登陆,虽然显示的可用时间为0,但是程序能正常调用COC启动。
本次破解成功!

总结:我在这个再详细分析下这个函数,如下图,程序先检查了下状态,再从服务器获取了KEY,剩余时间,以及版本号,每个版本号对应一个固定的KEY,所以每次版本更新都需要重新找出这个KEY。
有个这个KEY,程序会验证这个KEY 具体是用到了 hash map,这个hash map 我看的很晕,就没看他了。

全部验证通过后,小白精灵会启动COC主程序,然后没隔多少时间执行如下脚本;
我尝试修改过脚本,但都失败了。而且脚本是二进制的。。。
QQ截图20160122161947.png
最后,破解主要的过程是分析,每次都会碰壁,等你尝试了你所有的想法,才有可能成功!
时间原因,就写到这里,希望管理员能采纳!谢谢


发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Hmily 发表于 2016-1-25 13:31
ID:kcloc
邮箱:lby62318881@163.com

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

ps:登录后可以把文章重新整理一下发到移动安全区。
kcloc 发表于 2016-1-25 19:25
新人报道,谢谢 Hmily,嘿嘿~

免费评分

参与人数 1热心值 +1 收起 理由
欧洛 + 1 记住你的第一次是我的...

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 19:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表