1. 前言
在日常开发中,有时候想做一点羞羞的事情(ps: 学习一下别人的代码),但是一用dex2jar工具反编就报com.googlecode.d2j.DexException: not support version异常,在我高涨的学习热情上直接浇了一盆冷水。(后面有工具下载地址)
2. 反编手顺:
反编其实很简单,先简单叙述一下:
-
Step 1:将apk用任意解压工具直接解压(我用的zip)得到classes.dex,你可能会得到很多dex,不要紧,一个一个反编就行。
-
Step 2 : 使用dex2jar工具将每一个dex文件反编成jar包
- 将dex2jar工具解压到任意目录(我暂时解压到桌面)
- 进入解压目录并且按(shift+右键,选择在此处打开命令行窗口)进入cmd命令行
- 将classes.dex拷贝到dex2jar工具目录,使用指令:d2j-dex2jar.bat classes.dex 即可得到反编后的jar包
- Step 3 : 使用JD-GUI工具尽情学习就行了。
3. 问题发现:
使用dex2jar工具反编的时候,一输入指令,结果报com.googlecode.d2j.DexException: not support version错误(如下图)
4.1 调查原因:
谷歌对dex文件的介绍:常量数组/字符串
DEX_FILE_MAGIC
是字节列表,这类字节必须出现在.dex
文件的开头,以便系统将其原样识别。该值会特意包含一个换行符("\n"
或0x0a
)和空字节("\0"
或0x00
),以便协助检测某些形式的损坏问题。该值还可以