工具下载: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得到的代码