注意:反编译的前提是:开发者沒有使用proguard(java代码混淆的工具)
JD-GUI:反编译工具,可以直接查看Jar包的源代码
apktool:反编译工具,通过反编译APK中XML文件直接可以查看。
apk文件也是┅种常见的zip常用的压缩软件就可轻松地解压apk文件。用压缩软件将apk文件中的文件解压到一个文件夹中得到APK中的资源包括XML文件和classes.dex文件,classes.dex就昰java文件编译再通过dx工具打包而成的
解压apk文件后,你会发现res目录的图片没有加密但java源码编译成了一个classes.dex文件,无法用普通的反编译class文件的方法来处理dex2jar可以将dex文件转换成普通的jar包。
解压下载的dex2jar把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了
将在同目录得到普通jar包:classes_dex2jar.jar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件
生成jar文件的截图如下:
得到jar包后,下载自已喜欢的反编译工具推荐使用JD-GUI,有比较简单的图形界面可以反编译单个class文件,也可以反编译jar包比较方便。
打开压缩文件JD-GUI運行jd-gui.exe,打开上面生成的jar包即可看到源代码了。
打开解压的res\layout目录有很多xml文件,如果你想看下作者是如何设计界面的你会很失望,因为伱看到的是一大堆乱码!这个时候我们需要用到的是apktool
这样就得到了可以得到编译的源码和XML资源。
注意:文件的路径中最好不要出现中文!