Mac Android 查看dex文件内容

1.将apk直接改后缀得到 zip

然后解压后可以直接得到里面的res文件夹,还有lib文件夹。可以得到里面的资源文件,lib里有一些so文件

2.将dex文件转为jar文件

解压后里面还有dex文件。如果应用包很大的话会有两个用来分包,这时候需要将 dex 转为 jar,需要用dex2jar
下载地址:https://sourceforge.net/projects/dex2jar/files/
注意下载的版本:dex2jar-0.0.9.15。最新的版本dex2jar-2.0我这边使用是有问题的。

将需要反编译的dex文件放到此文件夹下,并在此目录下运行cmd,输入命令:
sh d2j-dex2jar.sh [dex文件] 示例:sh d2j-dex2jar.sh classes.dex

3.查看jar文件内容

这时候需要用到jd-gui-osx,我下载的是jd-gui-osx-1.6.6
下载地址:http://java-decompiler.github.io/
下了之后也是有点坑:不能直接运行会有错误:

解决方:替代包里的文件universalJavaApplicationStub.sh
参考:https://blog.csdn.net/twx843571091/article/details/110119638


遇到的问题

搞这个可谓一步一个坑,简单的几步,看的windows教程没想到严重水土不服
1.dex2jar不能使用最新的
2.jd-gui-osx不能直接运行需要修改
3.得到的jar可能不是全的代码,执行sh d2j-dex2jar.sh [dex文件]可能会失败了。

com.googlecode.dex2jar.DexException: while accept method:[Landroidx/activity/OnBackPressedCallback;.addCancellable(Landroidx/activity/Cancellable;)V]
	at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:694)
	at com.googlecode.dex2jar.reader.DexFileReader.acceptClass(DexFileReader.java:441)
	at com.googlecode.dex2jar.reader.DexFileReader.accept(DexFileReader.java:323)
	at com.googlecode.dex2jar.v3.Dex2jar.doTranslate(Dex2jar.java:85)
	at com.googlecode.dex2jar.v3.Dex2jar.to(Dex2jar.java:261)
	at com.googlecode.dex2jar.v3.Dex2jar.to(Dex2jar.java:252)
	at com.googlecode.dex2jar.tools.Dex2jarCmd.doCommandLine(Dex2jarCmd.java:110)
	at com.googlecode.dex2jar.tools.BaseCmd.doMain(BaseCmd.java:174)
	at com.googlecode.dex2jar.tools.Dex2jarCmd.main(Dex2jarCmd.java:34)
Caused by: com.googlecode.dex2jar.DexException: while accept parameter annotation in method:[Landroidx/activity/OnBackPressedCallback;.addCancellable(Landroidx/activity/Cancellable;)V], parameter:[0]
	at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:663)
	... 8 more
Caused by: com.googlecode.dex2jar.DexException: Not support yet.
	at com.googlecode.dex2jar.reader.Constant.ReadConstant(Constant.java:128)
	at com.googlecode.dex2jar.reader.DexAnnotationReader.accept(DexAnnotationReader.java:58)
	at com.googlecode.dex2jar.reader.DexFileReader.acceptMethod(DexFileReader.java:660)
	... 8 more

失败后需要处理:https://blog.csdn.net/zhangmiaoping23/article/details/41278035

最后可能会用到的:

  • apktool下载:https://bitbucket.org/iBotPeaches/apktool/downloads/
  • windows版本查看dex文件内容:https://www.jianshu.com/p/dbe579f6cc84
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值