有了.apk文件,有什么办法可以获取其源代码?
有了.apk文件,有什么办法可以获取其源代码?
Answers:
即使使用了ProGuard,您仍然可以获得一些有趣的见解。这是带有详细说明的StackOverflow问题:Android:从APK文件获取源代码。带有详细指南的 YouTube视频。与此相关的博客文章:如何从Android APK文件检索源代码。
.apk文件解码过程,分步方法:
新建一个文件夹,然后复制要解码的.apk文件。
现在,将此.apk文件的扩展名重命名为.zip(例如,从filename.apk重命名为filename.zip)并保存。现在,您可以访问classes.dex文件等。在此阶段,您可以看到drawables,但是看不到xml和java文件,因此继续。
现在,将此.zip文件解压缩到同一文件夹(或NEW FOLDER)中。
将classes.dex文件移动到dex2jar文件夹中。
现在打开命令提示符,并将目录更改为该文件夹(或NEW FOLDER)。然后编写d2j-dex2jar classes.dex
并按Enter。现在,您在同一文件夹中有classes.dex.dex2jar文件。
下载java decompiler,双击jd-gui,单击打开文件,然后从该文件夹中打开classes.dex.dex2jar文件:现在,您获得了类文件。
通过src名称保存所有这些类文件(在jd-gui中,单击File-> Save All Sources)。在此阶段,您获得了Java源代码,但是.xml文件仍然不可读,因此继续。
现在打开另一个新文件夹
放入您要解码的.apk文件
下载最新版本的apktool 和 apktool安装窗口(均可从同一链接下载)并将它们放置在同一文件夹中
下载framework-res.apk并将其放置在同一文件夹中(并非所有apk文件都需要该文件,但不会造成伤害)
打开命令窗口
导航到APKtool的根目录,然后键入以下命令:
apktool if framework-res.apk
apktool d myApp.apk
(其中myApp.apk表示要解码的文件名)
现在,您在该文件夹中获得一个文件夹,并且可以轻松读取apk的xml文件。
只需将两个文件夹(在本例中均为两个新文件夹)的内容复制到单个文件夹中,就没有任何步骤
并享受源代码...