反编译



                                                                        图5

                                                                                                     图4

                                                                                             图3

                                                                                                     图2

                                                                                            图1


常用的三大反编译工具的下载地址以及用途:
1、apktool(反编译apk 中的xml 文件)
http://ibotpeaches.github.io/Apktool/
2、Dex2jar(反编译dex 文件)
http://github.com/pxb1988/dex2jar
3、jd-gui(与2 结合一起反编译dex 文件)
http://jd.benow.ca/
一、apktool 反编译STS 项目
解压之后,将aapt、apktool.jar 与apktool 脚本放在同一个目录之
下;通过chmod 给对应的文件加上权限;将需要反编译的apk 文件
也置于同一目录之下。下面开始通过命令执行反编译出APK 的xml
文件。
./apktool d -f saletracker-debug.apk -o test
注:saletracker-debug.apk 是需要反编译的apk;
test 是存放反编译结果的目录;
直接执行上述命令之后会有如图1的显示:
(注:方框的输出是正确的内容)


接着到该目录下查看确实有test 文件夹生成(此目录无需事先创建,
它会在反编译的过程自动生成。)目录如图2所示:
进入上述的test 文件中会项目中的res 目录、AndroidMainfest.xml
文件等生成。目的达到~~~
遇到的坑:在上述命令窗口的截图(椭圆部分)中也可以看到
错误的输出,执行命令为: ./apktool d -f saletracker-debug.apk test
时,会报错“Input file (test) was not found or was not readable.”原因
是apptool 2.0 以后命令发生了变化,不能再使用apktool d <apk_path>
<outfile_path>或者是./apktool d -f saletracker-debug.apk test。


二、Dex2jar(反编译dex 文件)
dex 文件的来源:将要反编译的apk 通过zip 包的方式解压就可以提
取出里面的dex 文件。(将解压之后的classes.dex 文件与脚本放置在
同个目录之下dex2jar-2.0)
然后执行命令:./d2j-dex2jar.sh classes.dex(执行之前chmod)
不出意外的话,执行完命令之后还会报一个权限的问题,根据错
误提示给对应的文件chmod 即可。如图3所示:
反编译完classes.dex 文件之后会在该目录之下生成一个jar 包,如
图4所示:


三、jd-gui(与上述二结合一起反编译dex 文件)
使用Dex2jar 反编译最终生成的jar 包(classes-dex2jar.jar)。Jar 包
中存在的是java 文件,需要通过jd-gui 工具将jar 包进一步转换成为
Java 代码。(用来读取class 文件并编译成.java 文件)。
在64 位unbuntu 14 之下,直接执行解压后的jd-gui 可能会报错,
我遇到的错误是: ”./jd-gui: error while loading shared libraries:
libgtk-x11-2.0.so.0: cannot open shared object file: No such file or
directory”。
解决方法,安装以下库文件,直接执行下述命令:“ sudo apt-get
install libgtk2.0-0:i386 libxxf86vm1:i386 libsm6:i386 lib32stdc++6”
打开jd-gui 之后直接通过”Open”打开上述二中生成的jar
文件,可以看到源代码。如图5所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值