如何提取不工作的.apk文件的代码?
如何提取不工作的.apk文件的代码?
这个问题已经有答案了:
实际上,我正在尝试提取名为cloudfilz.apk的.apk文件的代码,并希望在其源代码中进行操作,因此我按照以下步骤进行:
创建一个新文件夹并将.apk文件(要解码的文件)放入其中,现在将此.apk文件重命名为扩展名.zip(例如:从filename.apk重命名为filename.apk.zip),并将其保存...现在您可以获得classes.dex文件等……在此阶段您可以看到可绘制但不能查看XML和Java文件……因此请继续...
第2步:
现在在同一个文件夹(在此示例或情况下为新文件夹)中提取此zip apk文件。现在从此链接http://code.google.com/p/dex2jar/下载dex2jar并将其提取到相同的文件夹中(在此示例中为NEW FOLDER).....现在打开命令提示符并进入该文件夹(在此示例中为NEW FOLDER)......达到后,写“dex2jar classes.dex”并按Enter键......现在您将在相同的文件夹中获得classes.dex.dex2jar文件......
=>问题: - 我已成功完成步骤1,但在步骤2中,当我执行dex2jar classes.dex时,在命令提示符上出现错误java.lang.UnsupportedClassVersionError
,我知道这是因为我安装的JDK版本与classes.dex JDK版本号之间不兼容,所以我被卡住了,没有出路......
来自市场或未签名的任何.apk文件
-
如果您的apk是从市场下载的并且已签名,请从市场安装Astro文件管理器。 打开Astro>工具>应用程序管理器/备份,选择要备份到SD卡的应用程序。
将手机挂载为USB驱动器并访问“ backupsapps”文件夹以找到目标应用程序的apk文件(我们称其为app.apk)。将其复制到本地驱动器中,未签名的.apk也是如此。 -
从此链接下载Dex2Jar zip:SourceForge
-
解压下载的zip文件。
-
打开命令提示符,然后在到达dex2jar exe所在的目录并将apk复制到同一目录中后,写下以下命令。
dex2jar targetapp.apk file
(在终端上执行./dex2jar app.apk) -
从此链接下载反编译器:http://jd.benow.ca/
-
使用jd-gui打开“targetapp.apk.dex2jar.jar”
文件>保存所有源以将类文件保存在jar中转为Java文件。
- Download
apktool
, and extract it in a folder (let's say,apktool
). - Copy the APK file you want to decompile to that folder.
- Open command prompt and change your current directory to the folder created in the previous point.
- Type the command
apktool d -s -o output_folder_name apk_file_name.apk
and press enter. This will generate a folder namedoutput_folder_name
containing all the extracted files of the application.
macOS:
- Download Homebrew. It is a package manager for macOS.
- Open Terminal (located in
/Applications/Utilities/Terminal.app
) and type the command: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
- Press Enter. The installation will begin.
- Once the installation finishes, type the command:
brew install apktool
- Copy the APK file you want to decompile to a directory.
- Open Terminal and type the command
apktool d -s -o output_folder_name apk_file_name.apk
and press enter. This will generate a folder namedoutput_folder_name
containing all the extracted files of the application.
Linux:
- Open Terminal.
- Type the command
sudo apt-get install apktool
and press enter. This will installapktool
. - Copy the APK file you want to decompile to a directory.
- Open the terminal and type the command
apktool d -s -o output_folder_name apk_file_name.apk
and press enter. This will generate a folder namedoutput_folder_name
containing all the extracted files of the application.
- 下载包装脚本(可选)和apktool jar(必需)并将其放置在同一个文件夹中(例如
myxmlfolder
)。 - 将当前目录更改为
myxmlfolder
文件夹,并将apktool jar文件重命名为apktool.jar
。 - 将
.apk
文件放置在同一个文件夹中(即myxmlfolder
)中。 -
打开命令提示符(或终端),并将当前目录更改为存储
apktool
的文件夹中(在本例中为myxmlfolder
)。接下来,键入命令apktool if framework-res.apk
。我们在这里的做法是安装一个框架。有关更多信息,请参见文档。
- 上述命令应该会显示“Framework installed ...”。
-
在命令提示符中,键入命令
apktool d filename.apk
(其中filename
是apk文件的名称)。这应该会对文件进行解码。有关更多信息,请参见文档。这应该会输出一个名为
filename.out
的文件夹,其中filename
是apk文件的原始名称,不带.apk
文件扩展名。在这个文件夹中有所有的XML文件,如布局、可绘制等。