首页 > 编程知识 正文

Java反编译xml实现_如何反编译apk文件得到源码和XML文件

时间:2023-05-05 16:34:04 阅读:76517 作者:3499

我想很多开发人员都知道反编译APK,但是通常在尝试查看xml或java源代码时看不到。 用压缩工具解压缩apk得到的文件也是二进制文件,打开后到处是文字。

开发者只能使用图像资源,这往往也不能满足开发者的需求。

详细说明Android-apk的逆编译步骤。

注:反向编译的前提是开发人员不使用proguard(Java代码混淆工具)。

1 .下载反编译工具

需要下载四个工具: dex2jar、JD-GUI、apktool和apk tool-install-windows-r05-ibot

将dex2Jar:apk的classes.dex转换为jar文件。

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

apk工具:反编译工具。 可以通过反编译apk中的XML文件直接查看。

apk工具安装- windows-r05-ibot :辅助windows批处理工具。

下载到:

de x2 jar:http://code.Google.com/p/de x2 jar/downloads/list

JD-GUI:http://code.Google.com/p/inn lab/downloads/lis

apk工具: http://code.Google.com/p/Android-apk tool/downloads/list

工具截图:

2 .解冻apk包

apk文件也是常见的zip,通过常用的压缩软件可以轻松地解压缩apk文件。 用压缩软件将apk文件中的文件解压缩到一个文件夹中,得到apk中的资源包含XML文件和classes.dex文件,classes.dex是编译java文件并通过dx工具打包而成的

解压缩截图:

3 .反编译dex文件

解压缩apk文件时,可以看到res目录中的图像未加密,但java源代码已编译为classes.dex文件,无法通过常规的class文件反编译方法进行处理。 dex2jar可以将dex文件转换为常规jar包。

通过解压缩下载的dex2jar,将解压缩的文件夹放入系统磁盘和目录中,然后将此目录添加到系统path变量中,可以直接在:dex2jar.bat或dex2jar.sh中转换dex文件

DOS行命令如下: dex2jar.batxxclasses.dex(xx是classes.dex文件的路径。

在该目录中获得常规jar包: classes_dex2jar.jar后,可以通过处理常规jar包的方式反向编译此jar包以获得原始文件。

编译屏幕快照:

生成的jar文件的屏幕捕获如下:

4 .反向编译jar包

获得jar包后,建议您下载自己喜欢的反编译工具,然后使用JD-GUI。 有一个相对简单的图形界面,可以反向编译单个class文件和反向编译jar包。 方便。

打开压缩文件JD-GUI,运行jd-gui.exe,然后打开上面生成的jar包,即可查看源代码。

截图:

5 .反向编译XML文件

打开解压缩的reslayout目录时,有很多xml文件。 如果你想看看作者是怎么设计界面的,你会很失望。 因为可以看到很多乱码。 这个时候我们需要用Apk工具。

具体操作方法:将下载的apk工具和apk工具安装windows-r05-ibot这两个软件包解压缩到同一文件夹下。 此文件夹包含三个文件: aapt.exe、apktool.bat和apktool.jar。 此文件夹也位于系统磁盘的根目录中,并将此目录添加到path变量中。 以HelloWord.apk为例。

在DOS命令行中键入apktooldxxHelloword.apk helloword可显示helloword文件夹。 此文件夹中的xml文件是已编译的可成功显示的文件。

截图:

生成的文件:

现在,您将得到编译的源代码和XML资源。

注意:文件路径最好不要出现中文。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。