实际上,我试图提取名为 cloudfilz.apk 的 .apk 文件的代码,并希望在其源代码中进行操作,因此我按照以下步骤操作:-
创建一个新文件夹并放入 .apk 文件(您要解码的),现在用扩展名 .zip 重命名此 .apk 文件(例如:从 filename.apk 重命名为 filename.apk.zip)并保存它..现在您获得了类.dex 文件等...在此阶段您可以看到可绘制文件,但看不到 XML 和 java 文件...所以继续...
Step 2:
现在将此 zip apk 文件解压到同一文件夹中(在此例中为新文件夹)。现在从此链接下载 dex2jarhttp://code.google.com/p/dex2jar/并将其解压到同一文件夹(在本例中为新文件夹)...现在打开命令提示符并到达该文件夹(在本例中为新文件夹)....到达后写入“dex2jarclasses.dex”并按输入......现在你在同一文件夹中得到classes.dex.dex2jar文件......
=>问题:-我成功实现了步骤 1,但在步骤 2 中,当我执行 dex2jar classes.dex 时,我在命令提示符下收到错误java.lang.UnsupportedClassVersionError
,我知道这是由于我安装的JDK版本和classes.dex JDK版本号不兼容所以卡在这里,没有出路......
注意:除非另有说明,以下所有说明均普遍适用(也称为所有操作系统)。
先决条件
你会需要:
- 一个正在工作的Java安装
- 工作终端/命令提示符
- 一台电脑
- 一个 APK 文件
Steps
步骤1:更改APK文件的文件扩展名
-
更改文件扩展名.apk
通过添加一个文件.zip
文件名的扩展名,或更改.apk
to .zip
.
For example, com.example.apk
becomes com.example.zip
, or com.example.apk.zip
. Note that on Windows and macOS, it may prompt you whether you are sure you want to change the file extension. Click OK or Add if you're using macOS:
第2步:从APK中提取Java文件
-
将重命名的 APK 文件提取到特定文件夹中。例如,让该文件夹为demofolder
.
下载dex2jar (查看 GitHub 上的所有版本)并将该 zip 文件解压到与上一点所述相同的文件夹中。
-
打开命令提示符(或终端)并将当前目录更改为在上一点中创建的文件夹,然后键入命令d2j-dex2jar.bat classes.dex
并按回车键。这将生成classes-dex2jar.jar
文件位于同一文件夹中。
-
macOS/Linux 用户:代替
d2j-dex2jar.bat
with d2j-dex2jar.sh
。换句话说,运行d2j-jar2dex.sh classes.dex
在终端中并按 Enter 键。
下载Java反编译器 (查看 Github 上的所有版本)并将其解压并启动(也称为双击)可执行文件/应用程序。
从 JD-GUI 窗口中,拖放生成的classes-dex2jar.jar
文件写入其中,或转到File > Open File...
并浏览罐子。
Next, in the menu, go to File > Save All Sources
(Windows: Ctrl+Alt+S, macOS: ⌘+⌥+S). This should open a dialog asking you where to save a zip file named `classes-dex2jar.jar.src.zip" consisting of all packages and java files. (You can rename the zip file to be saved)
提取该 zip 文件(classes-dex2jar.jar.src.zip
)并且您应该获取应用程序的所有 java 文件。
第三步:获取xml
来自 APK 的文件
- 欲了解更多信息,请参阅apktool website有关安装说明等信息
-
Windows:
- 下载包装脚本(可选)和apktool jar(必需)并将其放在同一文件夹中(例如,
myxmlfolder
).
- 将当前目录更改为
myxmlfolder
文件夹并将 apktool jar 文件重命名为apktool.jar
.
- 放置
.apk
文件位于同一文件夹中(即myxmlfolder
).
-
打开命令提示符(或终端)并将当前目录更改为所在文件夹apktool
被存储(在这种情况下,myxmlfolder
)。接下来,输入命令apktool if framework-res.apk
.
我们在这里所做的是安装一个框架。欲了解更多信息,请参阅docs.
- 上述命令应导致“框架已安装...”
-
在命令提示符中,键入命令apktool d filename.apk
(where filename
是 apk 文件的名称)。这应该解码文件。欲了解更多信息,请参阅docs.
这应该会产生一个文件夹filename.out
正在输出,其中filename
是 apk 文件的原始名称,不带.apk
文件扩展名。此文件夹中包含所有 XML 文件,例如布局、绘图等。
Source: 如何从 APK 文件获取源代码 - Comptech Blogspot
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)