怎样反编译APK得到源代码和xml文件

最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。

1.下载工具

首先,要反编译需要下面这

4个工具:

dex2jar:将apk中的classes.dex转化成Jar文件。

JD-GUI:反编译工具,可以直接查看Jar包的源代码。

apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。

apktool-install-windows-r05-ibot:辅助windows批处理工具。

下载地址:

dex2jar:http://pan.baidu.com/share/link?shareid=1377907012&uk=2468608567

JD-GUI:http://pan.baidu.com/share/link?shareid=1374753571&uk=2468608567

apktool:http://pan.baidu.com/share/link?shareid=1379950517&uk=2468608567

apktool-install-windows-r05-ibot:http://pan.baidu.com/share/link?shareid=1378701946&uk=2468608567

 

如下图:

2.解压apk

直接右键解压apk就行了,这没什么好说的。【解压后会有个dex后缀的文件,下面会用到】

3.反编译dex文件

1)解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jar.bat或dex2jar.sh转换dex文件了。

2)DOS行命令如下:dex2jar.bat  xx\classes.dex(xx是classes.dex文件所在的路径)。

将在同目录得到普通jar包:【classes_dex2jar.jar】,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。

4.反编译jar文件

1)解压压缩文件JD-GUI

2)运行该文件夹里的jd-gui.exe,打开上面生成的jar包,

即可看到源代码了。

 

 

5.反编译xml文件

为什么要发编译xml文件呢?因为直接解压apk得到的xml文件是乱码来的,我们需要用工具把它调会正常来

具体操作方法:

1)将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aapt.exe,apktool.bat,apktool.jar。

2)把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWord.apk为例:

3)在DOS命令行中输入:apktool d xx\HelloWord.apk HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。

 

6.后话

不过,说到底反编译还是反编译,还是不能完全地还原出真正的源代码的,比如一般会出现下面这样的问题:

setContentView(2130903048);

在真正的源代码中其实是这样的:

setContentView(R.layout.welcome)


还有就是那里的对象名都会和真正的源代码里的对象名有一定的出入,所以看起来会很辛苦。不知道有没有什么解决办法,至少我现在还暂时还没找到


 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值