参考链接:
https://www.jianshu.com/p/55bf5f688e9a
https://source.android.com/devices/tech/dalvik/dex-format#dex-file-magic
原因:
dex2jar 的版本与要解析的 dex 文件的版本不匹配造成的
方案:
- 使用对应版本的 dex2jar
- 使用二进制编辑工具修改 dex 文件的版本
将图一中选中位置改为图二中选中内容即可(也就是把038改为035)
关于 dex 文件的版本号
- 009
M3 releases of the Android platform (November–December 2007) - 013
M5 releases of the Android platform (February–March 2008) - 035:
android 7.0 之前 - 037
android 7.0 正式版开始使用到 android 8.0 release 版 - 038
android 8.0 release 版
以上摘自官网:
ps:虽然官网也说了前8位是魔数,但是一般而言魔数是4位,且魔数一般是不会变的,我的理解是前四位(6465780A)是魔数,后四位(30333500)是版本号