有没有一种方法可以从APK文件中获取源代码?

22 浏览
0 Comments

有没有一种方法可以从APK文件中获取源代码?

我的笔记本电脑上的硬盘刚刚崩溃了,我失去了我过去两个月一直在开发的应用程序的所有源代码。我只有一个APK文件,它存储在我发送给朋友的电子邮件中。

有办法从这个APK文件中提取我的源代码吗?

admin 更改状态以发布 2023年5月23日
0
0 Comments

这是一个备用描述,以防万一有人对上面的描述感到困惑。按照以下步骤:

  1. http://ibotpeaches.github.io/Apktool/install/下载apktool.bat(或apktool适用于Linux)和apktool_.jar
  2. 将上面的jar文件重命名为apktool.jar,并将这两个文件放在同一个文件夹中
  3. 打开命令提示符(cmd.exe)并切换到该文件夹;验证已安装Java环境(对于Linux,请查看有关所需库的说明)
  4. 开始:apktool decode [apk 文件]
    中间结果:资源文件,AndroidManifest.xml
  5. 使用您选择的解包程序解压APK文件
    中间结果:classes.dex
  6. http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=下载并提取dex2jar-0.0.9.15.zip
  7. classes.dex拖放到dex2jar.bat上(或在DOS窗口中输入\dex2jar.bat classes.dex;对于Linux,请使用dex2jar.sh
    中间结果:classes_dex2jar.jar
  8. 解压classes_dex2jar.jar(根据所使用的反编译器而可能是可选的)
  9. 反编译您的类文件(例如使用JD-GUIDJ Decompiler
    结果:源代码

注意:不允许反编译第三方程序包;本指南仅旨在从APK文件中恢复个人源代码;最终生成的代码很可能是混淆的

0
0 Comments

最简单的方法是使用在线工具Decompiler,上传apk文件,获得源代码。


解码.apk文件的步骤:

第一步:

  1. 创建一个新文件夹并将要解码的.apk文件复制到其中。

  2. 将这个.apk文件扩展名改为.zip(从filename.apk改为filename.zip),并保存。现在您可以访问classes.dex文件。此时,您能看到的是可绘制的文件,但看不到.xml和.java文件。

第二步:

  1. 现在将这个.zip文件解压缩到同一个文件夹或一个新文件夹中。

  2. 下载dex2jar(不要下载代码,点击右侧的“Releases”按钮,然后下载名为dex2jar-X.X.zip的文件)并将其解压缩到同一个文件夹或新文件夹中。

  3. 将classes.dex文件移动到dex2jar文件夹中。

  4. 现在打开命令提示符并将目录更改为该文件夹。然后写入d2j-dex2jar classes.dex(对于Mac或Ubuntu,请写入./d2j-dex2jar.sh classes.dex),然后按Enter键。现在,您在同一个文件夹中拥有classes.dex.dex2jar文件。

  5. 下载java decompiler,右键单击jd-gui,点击“打开文件”,并从该文件夹打开classes.dex.dex2jar文件:现在您获得类文件。

  6. 通过src名称保存所有这些类文件(在jd-gui中,单击“文件”->“保存所有源文件”)。此时,您获得了Java代码,但.xml文件仍然无法读取。

步骤 3:

现在打开另一个新文件夹

  1. 把你想要解密的.apk文件放进去

  2. 下载最新版本的 apktool apktool 安装程序(两者可以从同一个链接下载),将它们放在同一个文件夹中

  3. 打开命令提示符

  4. 现在运行命令 apktool if framework-res.apk (如果你没有它,从这里获取)并接着

  5. apktool d myApp.apk(myApp.apk代表你想要解密的文件名)

现在你得到了一个文件夹,在这个文件夹中可以轻松读取.xml文件。

步骤 4:

这不是任何步骤,只需把两个文件夹(两个新文件夹)的内容复制到一个文件夹中即可

享受源代码吧!

0