前言:最近在抓包爬某看书APP的接口,发现其接口返回的部分书籍章节文字内容被加密了,尝试了base64等多种解密方式都不行,猜测大概率是对方自己在js中做了解码处理,于是就有了今天的反编译APK经历。
1.准备工作
工具下载:
安装ApkTool
点击下载: ibotpeaches.github.io/Apktool/ins…
下载apktool和apktool.jar保存到/usr/local/bin目录(注意第一个文件apktool没有后缀)
最后在终端输入
apktool命令测试是否安装完成。
出现如图的结果就可以下一步了。
dex2jar
点击下载:sourceforge.net/projects/de…
JD-GUI
点击下载:jd.benow.ca/
这两个工具下载完成后直接解压待用就可以了。
2.开始脱壳
按照其他文档教程描述,执行apktool d xxx.apk即可。
但我在此处遇到一个问题,就是反编译出来的文件夹中并没有.dex文件。
在google了好一会儿之后,终于找到解决方法:直接用解压缩工具解压文件即可(如图)。相关阅读:为什么有些APK解压后没有dex文件?
有了.dex文件我们继续用dex2jar把dex转化为jar文件。 为了方便,我把classes.dex直接挪到了dex2jar-2.0目录下。
执行命令sudo bash d2j-dex2jar.sh classes.dex
成功后,我们获得了如图的.jar文件
接下来我们就可以使用JD-GUI来查看反编译后的程序源码了: 点击JD-GUI运行,直接把刚得到的.jar文件拖动到打开的窗口中。
我们就得到了反编译出来的class源代码。