最近在使用一款APP叫做“准题库”,看了两个视频感觉讲得不错,再看后面的就让交费了。我就百度搜各种资料,研究怎么破解一下,才接触到”逆向编程”这个领域。说实话,以前也稍微用到过反编译的工具“欣赏”一下别人的代码,应用上线前也用各种加固工具加固过,但是不知道什么原理。经过几天的研究,才有了这个笔记本下的这几篇文章,真心觉得”逆向编程“挺有意思的。
下面就言归正转,说一下我破解”准题库“的历程。
APP下载链接
https://sj.qq.com/myapp/detail.htm?apkName=cn.wangxiao.zhuntiku
我要干什么
ztk.jpg看上图,有购物车的都是要收费。我想着如果能修改它的源码,直接在跳转收费的地方越过收费的流程,直接看视频启不是很爽?
开干
参照我的这篇博客https://www.jianshu.com/p/796662e8eb02,回编译的时候没有遇到坑2和坑3了(之前博客里写的,应该是apktool缓存的问题。),把坑1的问题解决下就能成功回编译出一个APK了。然而APK跑不起来
1)第一个问题:找不到libjiagu.so
这个在上面的博客中已经提到过,网上找了一些脱壳资料
https://www.cnblogs.com/hei-hei-hei/p/7093406.html
才知道,这个应该是360加固了。那么这个错误是如何导致的呢?
可以看到,这个类com.stub.StubApp,这个应该是360加固助手自己动态生成的类。不要直接看StubApp的smali文件,直接用Jadx即可查看StubApp的部分源码文件。
image.png
到清单里,将这个android:name="com.stub.StubApp" 干掉,重新回编译成功。
2)第二个问题:找不到腾讯bugly相关的so库
既然360的东西已经被干掉了,那么就看程序的入口:
但是,但是,反编译出来的文件里根本没有SplashActivity的影子!
image.png
反编译出来,只有360的一些文件。那么,清单里那么多的类都哪儿去了?
自己写了个demo,用和不用360加固助手,反编译后对比发现。使用了360加固之后的apk,反编译出来的结构和上面说到的准确库app是一样的,原来360加固助手会把源程序打包到lib.so中。
文章写到这儿,我发现我的知识点已经断路了,不得不再学习发表一篇文章。
SO脱壳
网友评论