🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#### 13.4.1 使用dex2jar和jd-gui反编译apk Dex2jar和jd-gui在很多操作系统上都可以使用,本节只介绍它们在Windows和Linux上的使用方式。Dex2jar是一个将dex文件转换为jar包的工具,它在Windows和Linux上都有对应的版本,dex文件来源于apk,将apk通过zip包的方式解压缩即可提取出里面的dex文件。有了jar包还不行,因为jar包中都是class文件,这个时候还需要jd-gui将jar包进一步转换为Java代码,jd-gui仍然支持Windows和Linux,不管是dex2jar还是jd-gui,它们在不同的操作系统中的使用方式都是一致的。 Dex2jar是命令行工具,它的使用方式如下: Linux (Ubuntu):./dex2jar.sh classes.dex Windows:dex2jar.bat classes.dex Jd-gui是图形化工具,直接双击打开后通过菜单打开jar包即可查看jar包的源码。下面做一个示例,通过dex2jar和jd-gui来反编译13.1节中的示例程序的apk。首先将apk解压后提取出classes.dex文件,接着通过dex2jar反编译classes.dex,然后通过jd-gui来打开反编译后的jar包,如图13-3所示。可以发现反编译后的结果和第13.1节中CrashActivity的源代码已经比较接近了,通过左边的菜单可以查看其他类的反编译结果。 :-: ![](https://img.kancloud.cn/31/1b/311b8985a85486db4ddbc4b8f8123eae_616x600.png) 图13-3 使用jd-gui反编译jar包