Android反编译apk

来源:互联网 发布:民治编程语言培训 编辑:程序博客网 时间:2024/06/05 05:54

工具下载:http://download.csdn.net/detail/hunhun1122/9844686

 

我们一般想要反编译一个apk,无非就是想获得三样东西

图片资源 ,XML资源,和代码资源

一.图片资源获取、

这个最简单啦,

 

\

 

首先准备一个apk,嘿嘿就是你啦

 

这里写图片描述

 

这里是一个.apk后缀的文件,我们先把后缀改成,zip,

然后就成了这样

 

这里写图片描述

 

化身压缩文件啦撒,然后打开后你就能看到如下图

 

这里写图片描述

 

从压缩文件里解析出来的有很多目录撒,有大家熟悉的res目录,还有一个待会着重介绍的

classes.dex文件

在res目录下,我们就可以获取到我们需要的图片了撒,是不是非常esay

 

这里写图片描述

 

 

这里写图片描述

 

二.XML资源获取

下载上述工具中的apktool,解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,将需要反编译的APK文件放到该目录下,

打开命令行界面(运行-CMD) ,定位到apktool文件夹,输入以下命令:apktool.bat d -f  test.apk  test    


(命令中test.apk指的是要反编译的APK文件全名,test为反编译后资源文件存放的目录名称,即为:apktool.bat   d  -f    [apk文件 ]   [输出文件夹])

说明获取成功,之后发现在文件夹下多了个test文件,点击便可以查看该应用的所有资源文件了。

如果你想将反编译完的文件重新打包成apk,那你可以:输入apktool.bat   b    test(你编译出来文件夹)便可,效果如下:


之后在之前的test文件下便可以发现多了2个文件夹:

build

dist(里面存放着打包出来的APK文件)

这里写图片描述

 

三.代码资源的获取

这个重中之重了,这也是我们主要想要获取到的东西。但是存在一点,这里能够正确反编译出来的只有未加密或者没有混淆的代码,如果想要反编译一些加密或者混淆后代码,俺们就需要其他途径解决了

首先要准备两样东西

 

这里写图片描述

 

dex2jar主要是用来把之前zip解压出来的classed.dex转成jar包的

jd-gui主要是用来打开Jar包的

这两个工具图中有下载链接哟,嘻嘻

具体讲下dex2jar怎么用

把dex2jar 解压后,然后将之前zip的classes.dex放到 dex2jar目录下,

注意,必须要跟dex2jar.bat是同级目录,如下图所示

 

这里写图片描述

 

然后又要用到cmd,cd 到dex2jar目录下,打命令行

dex2jar.bat classes.dex

 

这里写图片描述

 

然后你的目录里会多一个jar包

 

这里写图片描述

 

多了一个 classes-dex2jar.jar的文件

然后在用jd-gui把jar包打开,最终apk的代码就这样被剥离出来了

 

这里写图片描述

 

是不是很有成就感啊,但是值得注意的是,如果你反编译的apk是已经被加密的,就会出现下面情况。下图是题主试图反编译支付宝apk得到的代码

 

这里写图片描述
 
 

工具下载:http://download.csdn.net/detail/hunhun1122/9844686

 

原创粉丝点击