Android APK 反编译

最近出入公司业务需要,研究了一下Android APK反编译方面的知识,主要用到了APKTool 、dex2jar、jd-gui 这三个工具。

大体步骤如下:

1.首先把apk文件改名为.zip,然后解压缩其中的class.dex文件。
2.把class.dex拷贝到dex2jar.bat所在目录。运行dex2jar.bat class.dex,生成classes_dex2jar.jar。  
3.运行JD-GUI工具(绿色软件,好用的软件!),打开2中的 classes_dex2jar.jar文件,即可看到java源代码。


下面对这三个工具的使用进行一一说明。


一、Apktool
apktool是一个用来处理APK文件的工具,可以对APK进行反编译生成程序的源代码和图片、XML配置、语言资源等文件,也可以添加新的功能到APK文件中。这里主要用它来对APK 文件中的 xml文件进行解析。


安装步骤

1.首先安装需要JAVA环境,先下载JDK/JRE,点击下载,已经有JAVA环境的可跳过此步。

2.到code.google上下载apktool.jar以及相关文件:http://code.google.com/p/android-apktool/downloads/list
点击下载apktool-1.0.0.tar.bz2 和apktool-install-windows-2.1_r01-1.zip

3.解压apktool-install-windows.zip到任意文件夹中,然后解压apktool.jar 到apktool-install-windows.zip所在的文件夹下

Android APK 反编译_第1张图片


反编译步骤:

1、在DOS窗口下,切换到 刚才解压的目录 apktool-install-windows-r04-brut1,输入apktool,出现一些命令说明即成功安装。
Android APK 反编译_第2张图片

2、执行 apktool d -s c:\soft\xxx.apk c:\soft\source 命令
  命令格式:apktool d [opts] <file.apk> [dir]  中的d代表解码,[opts]代表选项,-s选项代表不解码源文件。

Android APK 反编译_第3张图片


成功之后可以看到 apktool-install-windows-r04-brut1目录下多了一个文件夹

Android APK 反编译_第4张图片


这样我们就顺利拿到 APK文件中XML文件了,接下来就是将 dex 反编译出来了。


二、dex2jar

将 .dex 文件反编译为 jar 文件。


执行步骤:

1、首先把apk文件改名为.zip,然后解压缩其中的class.dex文件,其实它就是java文件编译再通过dx工具打包成的。


2、将1 中获得的 class.dex拷贝到dex2jar.bat所在目录。运行dex2jar.bat class.dex,生成classes_dex2jar.jar

Android APK 反编译_第5张图片


三、jd-gui

反编译java class 文件的图形化工具


执行步骤:

1、进入到 jd-gui 所在目录,双击 jd-gui.exe文件,打开jd-gui 图形化界面

Android APK 反编译_第6张图片


2、将dex2jar 工具生成的 classes_dex2jar.jar 拖拽到 jd-gui中

Android APK 反编译_第7张图片




最后,将得到的java文件和得到的xml文件组合可得一个android工程,即可得到相对比较完整的apk源码;但也有些额外加的包没被编译出来。OK,大功告成啦!

所以在开发项目的时候,其中比较关键的、保密性要求比较高的 代码 可以将其打包成 so库文件,然后在程序中通过 JNI进行调用,这样可以提高安全性。





你可能感兴趣的:(dex2jar,apk反编译)