环境:win7,JDK7,Android SDK 4.0.3已经完全下载
android 反编译需要用到几个工具,它们是apktools,dex2jar,jd-gui:
apktools,作者用的版本是2.0.0
下载地址:http://ibotpeaches.github.io/Apktool/
dex2jar,版本是2.0
下载地址:http://sourceforge.net/projects/dex2jar/files/
jd-gui的版本是jd-gui-0.3.3.windows,
下载地址:https://code.google.com/p/innlab/downloads/list
三个工具介绍:
apktool
作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
dex2jar
作用:将apk反编译成java源码(classes.dex转化成jar文件)
jd-gui
作用:查看APK中classes.dex转化成出的jar文件,即源码文件
一,apktool的使用
1.将apk文件拷贝到tool目录下,本次的例子是一个app-release.apk,它是由android开发demo例子编译而成的。
2.编写apktool.bat文件内容如下,注意红字内容:
@echo off
if "%PATH_BASE%" == "" set PATH_BASE=%PATH%
set PATH=%CD%;%PATH_BASE%;
java -jar -Duser.language=en "%~dp0\apktool_2.0.0.jar" %1 %2 %3 %4 %5 %6 %7 %8 %9
3.用命令行模式执行命令:
apktool.bat d app-release.apk -o test
4.输出结果可能如下:
I: Using Apktool 2.0.0 on app-release.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: D:\用户目录\apktool\framework\1.apk
I: Regular manifest package...
I: Decoding file-resources...
I: Decoding values */* XMLs...
I: Baksmaling classes.dex...
I: Copying assets and libs...
I: Copying unknown files...
I: Copying original files...
5.提取的资源文件都存放在test目录下了
二.dex2jar的使用
1.将app-release.apk拷贝到dex2jar的目录下,并且改名为app-release.zip,解压app-release.zip
2.将解压出来的文件classes.dex,放到d2j-jar2dex.bat同级目录,
3.执行命令
d2j-dex2jar.bat classes.dex
4.可能输出结果为:
dex2jar classes.dex -> .\classes-dex2jar.jar
这个classes-dex2jar.jar就是反编译的文件。
三.jd-gui的使用
这个工具很简单,就是把反编译的文件classes-dex2jar.jar打开就可以了。也可以用鼠标拖拽到jd-gui的窗口,结果如下图:
到此,反编译就完成了,可以慢慢研究源码学习经验了。