反编译系列之一:如何反编译APK?

三个工具介绍及下载地址:

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.csdn.net/vipzjyno1/article/details/21039349/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值