有没有办法从APK文件中获取源代码?

个人笔记本电脑上的硬盘驱动器刚刚崩溃,而且丢失了过去两个月来我一直在使用的应用程序的全部源代码。 我所拥有的就是APK文件,该文件存储在我发送给朋友时的电子邮件中。 html

有什么办法能够从这个APK文件中提取个人源代码? java


#1楼

这两篇文章描述了如何结合使用apktooldex2jar来获取APK文件,并建立一个能够构建和运行它的Eclipse项目。 linux

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html android

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html git

基本上,您: github

  1. 使用apktool将资源文件移出apk
  2. 使用dex2jar得到一个jar文件,其中包含Eclipse所需格式的类。
  3. 建立一个Eclipse项目,将其指向资源文件和新的jar文件
  4. 使用zip实用程序打开jar文件并删除现有资源
  5. 使用JDGui打开jar文件以查看源代码
  6. JDGui所需的任何源代码,将其粘贴到Eclipse中的类中并对其进行修改
  7. 从jar文件中删除该类(所以您没有屡次定义相同的类)
  8. 运行。

#2楼

我将向您展现其余反编译.apk文件的方法。 windows

您能够按照“ prankul garg ”的前两个步骤进行操做 。 所以,您还有另外一个机会: app

步骤3': 函数

下载“ JD-GUI” ,就很容易找到这个。 在“ jd-gui.exe”中打开您的.jar文件。 (文件>打开文件>'找到您的.jar文件')。 完成此过程后,您能够将全部资源保存为.zip文件。 学习

因此,

1st-您必须将.apk文件重命名为.zip

2-您必须解码.dex文件(若是须要,能够将.apk文件解码为dex2jar

3-您必须使用JD-GUI解码.jar文件


#3楼

这是一个替代性说明-以防万一有人卡在上面的说明中。 按照步骤:

  1. http://ibotpeaches.github.io/Apktool/install/下载apktool.bat (或Linux的apktool )和apktool_<version>.jar
  2. 从上面将jar文件重命名为apktool.jar并将两个文件放在同一文件夹中

  3. 打开一个dos框( cmd.exe )并转到该文件夹​​; 验证是否已安装Java环境(对于Linux,请同时查看有关所需库的注释)
  4. 开始: apktool decode [apk file]

    中间结果 :资源文件, 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框中输入<path_to>\\dex2jar.bat classes.dex ;对于Linux使用dex2jar.sh

    中间结果classes_dex2jar.jar

  8. 解压缩classes_dex2jar.jar (根据使用的反编译器多是可选的)
  9. 反编译您的类文件(例如,使用JD-GUIDJ Decompiler

    结果 :源代码

注意:不容许反编译第三方软件包; 本指南仅旨在从APK文件中恢复我的源代码; 最后,最终的代码极可能会被混淆


#4楼

Play商店上还有一个新应用程序,能够经过它反编译apk(也为系统应用程序)并在智能手机上查看源代码。 它将文件保存到SD卡,所以您也能够在计算机上查看文件。 它不须要root或其余东西。

只需安装并享受乐趣。 我认为这是反编译应用程序的最简单方法。


#5楼

虽然您能够反编译APK文件,但您可能会遇到一个大问题:

它不会返回您编写的代码。 相反,它将返回编译器内联的全部内容,其中变量具备随机名称,而函数具备随机名称。 与从新开始相比,尝试反编译并将其还原到您拥有的代码中可能要花费更多的时间。

可悲的是,像这样的事情已经杀死了许多项目。
对于将来,我强烈建议学习版本控制系统,例如CVSSVNgit等。

以及如何备份。

相关文章
相关标签/搜索