APK文件反编译回安卓工程文件的方法

编程知识 更新时间:2023-04-17 20:52:15

前言:

昨天遇到了安卓端一直连接不上PC的情况,无论使用了什么方法都没法解决,最后使出了杀手——重装系统,终于解决了。但是也带来了一个问题,重装系统的时候都太心急了,忘了备份工程了。所有的工程文件全部丢失(Eclipse的工程文件默认都会放在C盘)。

好在再我的手机上安装了自己写的几个apk。于是准备反编译回工程文件。

下面就进入主题:

第一步、把apk文件拿回到电脑当中。

这个很简单,电脑连接手机进行USB调试,使用豌豆荚之类的工具直接可以把文件发送到电脑上。

第二步、把apk文件的后缀名改成rar,然后解压之后就发现了工程文件目录结构。

如test.apk改成text.rar。然后解压,位置任意(我这里解压到了D盘apk目录下)。

目录结构如下:


第三步、目录结构

这里的xml文件以及res中的文件都是二进制的,双击进入之后其实都是乱码。

每个资源所包含的内容如下。

res\  存放资源文件的目录
AndroidManifest.xml  程序全局配置文件
classes.dex  Dalvik字节码
resources.arsc  编译后的二进制资源文件

第四步、处理xml文件。

这时就用到了一个android4me的AXMLPrinter2工具。
下载地址:http://code.google/p/android4me/downloads/detail?name=AXMLPrinter2.jar&can=2&q=
点击下载

然后我们把文件解析出来,首先cmd进入命令界面,然后进入到该jar包的目录。我的结构为:




我输入的命令为: java -jar AXMLpRinter2.jar RFIDDAQ\AndroidManifest.xml(查看解析之后的xml文件)
java -jar AXMLPrinter2.jar RFIDDAQ\AndroidManifest.xml > RFIDDAQ\main.xml(将解析后的文件方法main.xml文件里)

双击打开main.xml文件你就发现xml文件已经可以正常查看了
第五步、获取java代码

这里需要处理的就是上面图中的classes.dex文件。 首先需要下载一个dex2jar, 下载连接:http://101.96.10.75/downloads.sourceforge/project/dex2jar/dex2jar-2.0.zip?r=https%3A%2F%2Fsourceforge%2Fprojects%2Fdex2jar%2Ffiles%2Flatest%2Fdownload&ts=1470824138&use_mirror=jaist点击下载 下载后把zip文件解压: 结构目录如下:
cmd进入到该目录下: 使用命令:dex2jar.bat classes.dex//注意这里所在的是dex2jar的目录,我们应该填写classes.dex文件的绝对路径

D:\dex2jar>dex2jar d:\apk\RFIDDAQ\classes.dex

这样的话RFIDDAQ目录下就多了一个jar文件:


第六步、处理jar文件,获取源代码。 这里同样需要用到一个工具JDGUI http://java.decompiler.free.fr/?q=jdgui下载地址 下载之后解压之后显示目录如下:
然后双击exe文件运行,最后
最后提醒一下: 反编译是利用一定的规律来对其所实现的功能进行一定的反写,其并不知道原作者们当初制定的规则, 就像我们同样是for循环遍历,就是for(int i=0;i<map.size;i++)和for(Object o:map.keySet())两种一样。反编译并不知道我们使用的是哪一种,但是他能知道我们使用了这个遍历。 就因为这原因,所以反编译出来的源码和我们当初写的源码其实是有很多不同的,而且反编译出来的源码看起来会相当的累,毕竟这是程序生成的代码,程序和人思考的方式是不一样的。 注:本文参考http://blog.csdn/hualingxin/article/details/7591546编写。

更多推荐

APK文件反编译回安卓工程文件的方法

本文发布于:2023-04-14 03:54:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/265baa9129ccca4d3bee20ecbc128f79.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文件   反编译   方法   工程   APK

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 74662文章数
  • 14阅读数
  • 0评论数