三个工具介绍及下载地址:
apktool
作用:资源文件获取,可以提取出图片文件和布局文件进行使用查看
下载地址:https://bitbucket.org/iBotPeaches/apktool/downloads
dex2jar
作用:将apk反编译成java源码(classes.dex转化成jar文件)
下载地址:https://sourceforge.net/projects/dex2jar/
jd-gui
作用:可以理解为源码查看工具,可以打开classes.dex转化成出的jar文件,即源码文件。
下载地址:http://jd.benow.ca/
建议下载:jd-gui-*.tar.gz的压缩包,然后解压
这三个工具使用起来都比较简单,详细的安装及使用方法如下:
1.1 apktool安装及使用方法
1.1.1 安装流程
Linux:
1. Download Linux wrapper script (Right click, Save Link As apktool)
2. Download apktool-2 (find newest here)
3. Make sure you have the 32bit libraries (ia32-libs) downloaded and installed by your linux package manager, if you are on a 64bit unix system.
(This helps provide support for the 32bit native binary aapt, which is required by apktool)
4. Rename downloaded jar to apktool.jar
5. Move both files (apktool.jar & apktool) to /usr/local/bin (root needed)
6. Make sure both files are executable (chmod +x)
7. Try running apktool via cli
引自:https://ibotpeaches.github.io/Apktool/install/
1.1.2 apktool使用方法
apktool的主要作用是将apk反编译得到程序的源代码、图片、XML配置、语言资源等文件,但是,只有*.smali类型的文件以及AndroidManifest.xml,而没有咱们像看到的*.java。
具体使用方法如下:
$ apktool d function1Service.apk
I: Using Apktool 2.2.0 on function1Service.apk
I: Loading resource table...
I: Decoding AndroidManifest.xml with resources...
I: Loading resource table from file: /home/user1/.local/share/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...
user1@user1-OptiPlex-3020:~/work/RD/reversecompile$ ls
function1Service function1Service.apk
user1@user1-OptiPlex-3020:~/work/RD/reversecompile$ cd function1Service/
user1@user1-OptiPlex-3020:~/work/RD/reversecompile/function1Service$ ls
AndroidManifest.xml apktool.yml original res smali
1.2 dex2jar安装及使用方法
dex2jar的主要作用是,将apk反编译得到Java源代码,终于能够看到java源码了O(∩_∩)O。
1.2.1 配置环境
cd dex2jar-2.0/
chmod -R 777 *
sudo mv * /usr/local/bin/
1.2.2 APK反编译得到java源代码
$mv abc.apk abc.zip
$unzip abc.zip -d test/
$cd test/
$d2j-dex2jar.sh classes.dex
打印:dex2jar classes.dex -> ./classes-dex2jar.jar
这样我们就得到了想要的jar包,下一步就是使用jd-gui来查看包里的java文件了。
1.3 jd-gui安装及使用方法
这个建议直接下载那个tar.gz的压缩包,然后直接这样执行。
tar -zxvf jd-gui-0.3.5.linux.i686.tar.gz
chmod 777 jd-gui
./jd-gui
剩下的和操作一个普通的windows界面一样了,直接打开上面生成的那个classes-dex2jar.jar即可。
References:
http://blog.youkuaiyun.com/vipzjyno1/article/details/21039349/