目前就已经常用的三个工具:Apktool、dex2jar、jd-gui,不要采用mac的brew工具(brew install xxx)安装这些工具,因为这样安装的不一定是最新版,会导致后面反编译产生问题,因此,所有的工具全部手动安装,或找到其原始发布网站进行下载安装。
Android安装包apk文件介绍:一个apk文件实质上就是一个压缩文件,可以直接通过解压工具解压的,只不过通常情况下,直接解压出来得到的内容都是被编译过的,包括各种资源文件等,如果想获取apk包里的图片,配置文件AndroidManifest.xml等需要首先用Apktool文件反编译。
mac 记得先安装jdk,这是基础,搜索自行安装最新版,有dmg的安装文件,直接安装,完了在命令行测试:java -version, 如果正常输出,则安装成功
1.Apktool,一个编译反编译apk包的工具,拿到一个apk包后首先”apktool d xx.apk“ ,如果发现报错,说明该apk包被加固过(类似ios中,直接从appstore获取的ipa包外面有一层壳一样),要先解固(即脱壳),不然后续工作都是徒劳。
安装Apktool :
参考:http://08643.cn/p/9554ab3f444f
- dex2jar,将apk包中*.dex 文件反编译成jar文件,dex文件就类似windows的可执行文件exe,ipa包中的那个无后缀的可执行文件,核心逻辑都在这里
安装dex2jar:【编译过程参考:https://github.com/pxb1988/dex2jar/wiki/BuildFromSource】
a、git下载dex2jar的官方源码 git clone https://github.com/pxb1988/dex2jar (用git clone来下载,不要直接手动下载,以免项目中有git相关联的文件夹无法下载下来)
b、dex2jar源码的编译需要使用一个叫做gradle的工具,先在mac上安装gradle
b1、直接到Gradle的官网下载已经编译好的release版:https://gradle.org/releases/
b2、
cd dex2jar-2.x
/Users/lop/Downloads/gradle-6.2.2/bin/gradle clean distZip
# if build successfull, the zip file is under dex-tools/build/distributions/
#修改编译出来的文件的权限
sudo chmod +x /Users/lop/Downloads/dex2jar-2.x/dex-tools/build/distributions/dex-tools-2.1-SNAPSHOT/*.*
#反编译dex文件
sh /Users/lop/Downloads/dex2jar-2.x/dex-tools/build/distributions/dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f xxx.apk
#在当前目录下便能得到xxx-dex2jar.jar 文件
- jd-gui直接去官网http://java-decompiler.github.io/下载,可查看dex2jar生成的jar文件,即能看到java源码