如何反编译apk文件得到源码和XML文件

如何反编译apk文件得到源码和XML文件,第1张

1下载反编译工具
需要下载四个工具:dex2jar、JD-GUI、apktool、apktool-install-windows-r05-ibot
dex2jar:将apk中的classesdex转化成Jar文件
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:辅助windows批处理工具。
2解压缩APK包
apk文件也是一种常见的zip,常用的压缩软件就可轻松地解压apk文件。用压缩软件将apk文件中的文件解压到一个文件夹中,得到APK中的资源包括XML文件和classesdex文件,classesdex就是java文件编译再通过dx工具打包而成的。
3反编译dex文件
解压apk文件后,你会发现res目录的没有加密,但java源码编译成了一个classesdex文件,无法用普通的反编译class文件的方法来处理,dex2jar可以将dex文件转换成普通的jar包。
解压下载的dex2jar,把解压后的文件夹放到系统盘跟目录中并把这个目录加到系统path变量中,就可以直接用:dex2jarbat或dex2jarsh转换dex文件了。
DOS行命令如下:dex2jarbat xx\classesdex(xx是classesdex文件所在的路径)。
将在同目录得到普通jar包:classes_dex2jarjar,就可以用处理普通jar包的方法来反编译这个jar包得到原文件。
4反编译jar包
得到jar包后,下载自已喜欢的反编译工具,推荐使用JD-GUI,有比较简单的图形界面,可以反编译单个class文件,也可以反编译jar包,比较方便。
打开压缩文件JD-GUI,运行jd-guiexe,打开上面生成的jar包,即可看到源代码了。
5反编译xml文件
打开解压的res\layout目录,有很多xml文件,如果你想看下作者是如何设计界面的,你会很失望,因为你看到的是一大堆乱码!这个时候我们需要用到的是apktool。
具体 *** 作方法:将下载的apktool和apktool-install-windows-r05-ibot两个包解压到同一个文件夹下,这个文件夹有三个文件:aaptexe,apktoolbat,apktooljar。把这个文件夹也放到系统盘的根目录中并把这个目录加到path变量中。以HelloWordapk为例:
在DOS命令行中输入:apktool d xx\HelloWordapk HelloWord得到HelloWord文件夹,此文件夹中的xml文件就是编译好的可以正常查看的文件。
这样就得到了可以得到编译的源码和XML资源。
注意:文件的路径中最好不要出现中文!

1、反编译不能直接修改java文件,而必须使用google的虚拟指令修改
2、也就是说不能直接替换classesdex
3、必须使用apktool来进行反编译,jd-gui得到的是不可逆的代码,无法编译回去
专业无源代码的 安卓 APK 反编译、修改,只有你想不到,没有做不到
@@ 724949472

在网上搜了一些办法,有些说换个反编译工具,或者其他的
其实解决这个问题很简单,问题就是因为生成jar的时候就失败了, dex2jarbat classesdex 这一步没有成功,
那是因为我的dex2jar工具版本太低,下载一个最新的来编译,就OK了

如何进行APK反编译
我们下载到某些apk的时候,可能总想学习下别人是怎么进行程序设计的,或者怎样使用xml文件布局的,这时就想到将apk文件的后缀改为rar并解压,最终得到一些资源和很多打开为乱码的文件,可见这种方式不可行,这就需要使用下面的工具对apk进行反编译了。
一、工具准备:apktool、dex2jar、jd-gui
工具包也可以在这里下载。
1、dex2jar可以在这里下载,jd-gui可以在这里下载。
2、apktool,可以到Google官方下载,apktool-100tarbz2(里面有apktooljar)和apktool-install-windows-21_r01-1zip两个包都要下。解压apktooljar到 C:\Windows,解压apktool-install-windowszip到任意文件夹(例如E盘根目录)。
二、使用dex2jar + jd-gui 得到apk的java源码,步骤如下:
1、用rar打开apk文档,将classesdex文件解压出来,然后使用工具反编译成jar文件。
在cmd下进入dex2jarbat所在路径,然后输入“dex2jarbat XXX”,XXX指的是你要反编译的apk中的classesdex文件所在路径及名称,比如:我的dex2jarbat在D:\Android\apk_decode\dex2jar-007-SNAPSHOT路径下,classesdex在D:\Android下,所以你进入到dex2jarbat路径后,输入dex2jarbat D:\Android\classesdex,这样会生成一个jar文件。
2、用jd-gui反编译工具将得到jar文件反编译成java文件。
三、使用apktool得到apk的xml文件
1、Win+R 运行CMD,用cd命令转到apktool-install-windows所在文件夹,输入命令:
apktool d XXXapk ABC 反编译XXXapk到文件夹ABC
2、 在解压后的文件夹中可以得到apk的xml配置文件。
四、第二步得到的程序源代码和第三步得到的xml文件组合下,就成一个android工程,即可得到完整的apk源码。


DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
乐在赚 » 如何反编译apk文件得到源码和XML文件

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情