1 源起
最近在某个网站看到推广一个直播app的,点开了因为有会员时间限制,只能只用十分钟,很是不爽,但最近接触了一些基础逆向知识,抱着尝试的态度尝试首次成功,特发帖纪录。
2 加固检测
看看app有没有加固,如果加固了,逆向起来就有一定的难度,相反没有加固的程序,很容易破解(当然现在加固很普遍了)。
所以首先用AndroidKiller解析apk,很明显这个软件没有加固。
2 寻找突破口
接着再用工具加载apk,突破点:当体验十分钟过期的时候,会提示是否续费,我们要突破的就是这个弹窗,所以我们就开始分析apk中有没有"续费"字眼出现,在搜索的时候转换编码地搜索比如十六进制转换,不要仅限于中文字符匹配。
这个时候就要换个思路,因为app一般都是走http协议进行请求的,所以经过文件排查 找到了一个HttpManage文件,在这个类里边发现了所有的http请求都打印了日志,
(其实它打不打印都无所谓,没有打印方法我们也可以自己加出来的,只不过是省了自己的一些事情了,更复杂点的我们可以smail插桩,单步地去看的程序运行调用)
接着用模拟器运行程序 然后再用logcat工具连接模拟器进行日志查看,发现每次点击主播图片的时候都会打印一个数字503,接着用查找工具去查询503,于是就发现了
再通过logcat查看日志,发现当会员过期后这个请求就回返回如下数据
我们再注册个新账号发现返回的数据是这样的
到此为止思路就有了:就是无论是否会员到期,把返回的数据替换成功的数据就行了,如下图,发现503就把数据改成正常的数据,代码修改如下
3 破解修改
接下来就是比较麻烦的地方。上图是java代码,其实我们要修改的是smali文件如下图,smali相对来说是比较难以理解,不符合人类易于理解的方式(对于经常改的大神就像小学作文了。。)
作为初次接触smali的新手,我是先用java写好类似的代码,然后编译成smail代码,然后再黏贴到apk中的smail文件中,因为这样就只需要做到调正smail类中p1 p2这样的变量心中有数就行了
到此编译打包,一个新的apk诞生,破解成功!
测试图片已被csdn屏蔽,并且这个软件也已经不能继续访问了,所以就不上图了。逆向之路的第一步就到此完成了。
关于入门安卓破解我觉得有以下几点着手,网上一搜一大堆的教程
- AndroidKiller工具使用
- 了解java,会使用jad-ui,jadx-gui工具反编译分析java代码
- 使用抓包工具分析数据请求
- 熟悉baksmail.jar dx.jar smail.jar jar包的用法:dex转smali 和 smali转dex
- smali插桩分析代码运行逻辑
- 如何动态调式smali代码
————————————————
欢迎关注公众号<无聊看风景>,获取更多文章