我这边使用的是mac系统,在尝试使用 dex2jar 工具时遇到了如下两个报错
一、DexException: not support version.
com.googlecode.d2j.DexException: not support version.
at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java:151)
at com.googlecode.d2j.reader.DexFileReader.<init>(DexFileReader.java:211)
at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:104)
at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:288)
at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:32)
该问题很多解决方案都是说要把 classes.dex 文件里面的037改成036,我看了我有几十个classes.dex😣...放弃;
随后继续研究,最后在stackoverflow 里发现方案:升级 dex2jar 版本,下载链接:dex2jar github release(我使用的是2.4版本 )
二、zsh: permission denied
按理来说其实这并不属于dex2jar的问题,是mac系统在执行脚本时会遇到的报错,这里一并说下,我的具体报错如下
// 执行命令
d2j-dex2jar.sh app-debug.apk
// 报错
zsh: permission denied: /Users/gaofengsen/Android/reverse/dex2jar-2.0/d2j-dex2jar.sh
解决方案
// 1、先执行该命令为此脚本获取权限
chmod u+x /Users/gaofengsen/Android/reverse/dex-tools-v2.4/d2j-dex2jar.sh
// 2、重新执行该命令即可
/Users/gaofengsen/Android/reverse/dex-tools-v2.4/d2j-dex2jar.sh /Users/gaofengsen/Android/reverse/dex-tools-v2.4/app-debug.apk
实测:
注意,一定要等该命令执行完成后再打开jar文件(执行完成后,终端会恢复可编辑状态)