包括apktool,dex2jar,以及JD-GUI
apktool
apktool工具是可以把apk包反编译成smali,可以从apk里面提取资源,也可以修饰smali的代码然后重新打包apk。
apktool依赖与Java8,本地的Java版本需要再8或以上。
具体的安装可以去看官网,mac与windows都支持,可以看看Mac安装Apktool与apktool的安装和使用
apktool命令:
1 | // 反编译 |
经过重新打包apk之后是没有签名的,需要自己使用命令行去重新签名
推荐阅读:
dex2jar
该工具可以把我们的dex包转换为jar包,下载地址
我们下载了之后,可以解压在任意文件夹下,然后把dex2jar的文件夹路径配置到环境变量中,然后再命令行中,通过dex2jar就可以看到他的具体命令,假如没有配置环境变量,则可以通chmod 777 d2j-dex2jar.sh
给权限,然后通过sudo sh d2j-dex2jar.sh xxx.dex
即可把dex解析为jar包。
环境变量配置以后可以直接使用d2j-dex2jar.sh xxx.dex
即可反编译。
需要注意的一个问题是我们的dex2jar假如是反编译由较高的java 版本得到的dex文件,则需要修改dex文件的编译版本号,否则会报一个com.googlecode.d2j.DexException: not support version
,关于如何修改dex的版本号,可以看【Android】应用程序解码编译和dex2jar,
JD-GUI
他是一个查看Jar包的图形UI工具,下载地址
直接把反编译得到的Jar存入拖入即可查看。