需要工具:
1.apktool apk打包工具
下载地址:http://android-apktool.googlecode.com/files/apktool1.5.2.tar.bz2
安装:直接解压即可,是一个apktool.jar文件,通过
$java -jar apktool.jar
$java -jar apktool.jar
来运行,依赖于java运行环境
2.dex2jar dex转化jar工具
下载地址:http://dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
安装:直接解压即可,是一个文件夹,里面包含了很多文件,通过
$./dex2jar.sh
$./dex2jar.sh
来运行
3.如果你没有unzip,安装此解压工具, zip解压缩工具,用于解压jar包(jar包是zip压缩的,所以可以用其它工具代替)
下载地址:ubuntu $sudo apt-get install unzip
安装: $sudo apt-get install unzip
$upzip [src_path] -d [dst_path]
$upzip [src_path] -d [dst_path]
来运行
./jad
来运行。需要说明的是,这个需要下载static版本的,如果不行的话,在去第一个链接里找另一个下载。
接下来,工具准备完毕了,最好设定一下环境变量,我们就可以反编译apk了
一、抽取apk资源
执行: $java -jar apktool.jar d [source.apk]
二、反编译源码
(1)解压apk
$unzip [source.apk] -d [step_1]
$unzip [source.apk] -d [step_1]
step_1指的是你所需要解压到的目录
(2)进入step_1 目录,找到classes.dex文件,将dex文件转化成jar文件
$dex2jar.sh classes.dex
$dex2jar.sh classes.dex
(3)获得一个classes_dex2jar.jar文件,我们现在要再度解压这个文件
$upzip classes_dex2jar.jar -d [step_3]
$upzip classes_dex2jar.jar -d [step_3]
step_3指的是你解压到的目录
(4)我们获得一个step_3目录,我们接下来要反编译该目录下所有.class文件
$./jad -o -r -s java -d src step_3/**/*.class
$./jad -o -r -s java -d src step_3/**/*.class
对于上面的参数,可以直接执行./jad查看,或者Readme.txt查看
(5)我们再度获得一个src目录,该目录下就是反编译好的源码文件了。
也可以使用JD-GUI工具直接查看classes_dex2jar.jar的class文件。
如果以上命令不执行的话,查看目录是否正确。
原文:http://blog.csdn.net/mao0514/article/details/32151201