jadx:更好的Android反编译工具

在jadx出现之前,我一般是使用apktooldex2jar这两个Android反编译工具。这两个工具也有不同的侧重点,如果只是想拿到apk里的一些图片或其他资源或是查看一下布局的layout文件,直接使用apktool -d xxx.apk即可。如果是要查看一下代码实现,就使用d2j-dex2jar.sh反编译一下apk然后使用jd-gui工具查看反编译后的.jar文件。

apktool+dex2jar+jd-gui一直是一个比较流行的Android反编译组合。
在使用过jadx之后觉得jadx相比上面的组合具有如下两个优点:

  • 可以直接反编译出.java文件
  • 查看源码时直接显示资源名称,而不是像jd-gui里显示的资源ID

安装jadx

编译安装

 
 
  1. git clone https://github.com/skylot/jadx.git
  2. cd jadx
  3. ./gradlew dist

然后将build/jadx/bin加入到环境变量。

直接下载安装

使用jadx

jadx也有GUI,直接双击bin目录下的jadx-gui.bat,然后选择要反编译的apk即可,运行效果如下。
jadx_gui
如果要保存源码,选择File->Save ALL即可保存文件,然后就可以导入Android Studio等IDE中。
我们也可以直接使用命令行反编译apk文件:

 
 
  1. jadx -d out classes.dex #直接输出.java文件到out目录
  2. jadx-gui classes.dex #使用gui打开

在反编译较大的apk时,如果遇到jadx-jui卡顿和假死的情况,可适当优化jvm相关参数,
我直接在~/.bash_profile中加上了如下语句:

 
 
  1. export JVM_ARGS="-Xmx4096m -XX:MaxPermSize=1024m"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值