首先需要反编译的三个软件:
apktool:资源文件获取;
dex2jar:源码文件获取;
jd-gui:源码查看。
1. apk反编译得到程序的源代码、资源文件
1.1 apktool解压得到3个文件:aapt.exe,apktool.bat,apktool.jar ,现在用weixin做实验(这里仅是示范作用),将需要反编译的weixin_800.apk文件放到该目录下,打开命令行界面(运行-CMD),定位到apktool文件夹,输入以下命令:apktool d [-s] -f weixin_800.apk -o weixin; 其中weixin_800.apk是要反编译的apk文件名,weixin是反编译后存放的目录文件,此文件不需要新建,反编译后会自动生成
1.2 打开weixin文件夹,res就是要找的资源文件,目录结构和平时建的项目很像。
1.3 这时候打开D:apktoolweixin
esanim下a.xml看下,xml文件轻而易举的获取了
2. Apk反编译得到java源代码
2.1 解压dex2jar和jd-gui文件;将要反编译的APK后缀名改为.zip,并解压,得到其中的classes.dex文件,将获取到的classes.dex放到之前解压出来的工具dex2jar-0.0.9.15文件夹内
2.2 在命令行下定位到dex2jar.bat所在目录,输入dex2jar.bat classes.dex
2.3 这个时候会发现dex2jar-0.0.9.15文件夹多了一个classes_dex2jar.jar文件
2.4 现在就可以用工具jd-gui.exe打开这个jar了
2.5 通过反编译,可以知道别人用到了哪些库文件,它的代码大体是如何编写的等等。有了思路就可以自己尝试了。
② APK反编译后没有res文件夹,只有一个smali文件夹正常吗
不正常,这情况一般是资源混淆了,资源混淆的apk反编译时提示错误,生成一个res文件夹和一个AndroidManifest.xml
③ apk反编译后为什么没有res文件夹
因为反编译失败了,所以只有smali文件夹了。
1.反编译Apk得到Java源代码
首先要下载两个工具:dex2jar和JD-GUI
前者是将apk中的classes.dex转化成Jar文件,而JD-GUI是一个反编译工具,可以直接查看Jar包的源代码。
具体步骤:
首先将apk文件,将后缀改为zip,解压,得到其中的classes.dex,它就是java文件编译再通过dx工具打包而成的;
解压下载的dex2jar,将classes.dex复制到dex2jar.bat所在目录。在命令行下定位到dex2jar.bat所在目录
运行dex2jar.bat classes.dex
生成classes.dex.dex2jar.jar
2.反编译apk生成程序的源代码和图片、XML配置、语言资源等文件
还是下载工具,这次用到的是apktool
具体步骤:
将下载的两个包解压到同一个文件夹下,应该会有三个文件:aapt.exe,apktool.bat,apktool.jar
1.解压缩下载的两个文件包,apktool-install-windows-r04-brut1.tar解压缩后得到的包里有aapt.exe 和apktool.bat.(注意要把apktool1.4.1.tar解压后的一个.jar 文件到解压后的apktool-install-windows-r04-brut1文件夹里)
2.特别注意:你要反编译的文件一定要放在C盘的根目录里
④ 如何反编译android的apk文件得到资源文件
首先下载apktool工具(apktool-install-windows-r04-brut1.tar.bz2和apktool1.4.1.tar.bz2):
下载完成后,解压apktool-install-windows到任意文件夹,例如,解压到F:apktool目录下:
然后解压apktool到任意文件夹,解压完成后会得到一个apktool.jar文件
最后把apktool.jar文件解压到apktool-install-windows同目录下:
解压完成后apktool.jar文件不能删除,之后还会用到。
然后我们把我们要反编译的apk文件(MyPolygon.apk)拷贝到apktool目录下:
打开一个命令行窗口,进入apktool目录下,输入如下命令:
⑤ 反编译后回编找不到生成的apk文件
你用什么进行的反编译呢?如果是apktool的话,你检查一下回编译的命令。
如果是是其他软件,例如 apktool-gui的话,你可以直接到目录下进行查找。
同时,如果提示你回编译成功,你搜索一下apk文件,看是否能找到。
请采纳,谢谢~~有问题继续沟通~~
⑥ 如何反编译apk文件得到源码和XML文件
最近因为一些事所以需要得到师兄的某个apk的源代码,但师兄说那个项目包已经删了,哎,没办法,只能自己想办法了。后来找到了反编译apk的方法,现在拿出来分享下。其实这个方法网上都有,我只是记载一下自己这段时间的学习情况。
1.下载工具
首先,要反编译需要下面这
4个工具:
dex2jar:将apk中的classes.dex转化成Jar文件。
JD-GUI:反编译工具,可以直接查看Jar包的源代码。
apktool:反编译工具,通过反编译APK中XML文件,直接可以查看。
apktool-install-windows-r05-ibot:辅助windows批处理工具。
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)
⑦ 反编译游戏apk为什么没有图片资源
很多游戏都是自己加密后的数据包,比如把游戏中的很多图片放到一个文件里面,然后这个文件再加密,一起生成一个比如xxx.bin或者xxx.bak或者xxx.乱七八糟的,这些文件,就是他图片真实存在的地方。他开始游戏的时候会先去根据自己的加密方式来解密来读取这些图片资源的
⑧ exescope等反编译软件对exe文件进行反编译,文件没有加壳,但是除了对话框,图片,版本等,其他资源看不见
大致有这样几种情况:
1、某些资源不在.exe文件里,而在附带的.dll文件里;
2、某些资源调用的是Windows链接库,而非软件自身资源;
3、exescope查看资源仅对C语言编写的程序效果好。