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

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


当前回答

我将向您展示反编译.apk文件的其他方法。

你可以按照“恶作剧漱口”的前两步来做。所以你还有另外一个机会:

步骤3':

下载“JD-GUI”,很容易找到这个。在“jd-gui.exe”中打开.jar文件。(文件>打开文件>找到.jar文件)。完成此过程后,您可以将所有资源保存在.zip文件中。

So,

第一个-必须将.apk文件重命名为.zip

第二步-必须解码.dex文件(如果需要,可以将.apk文件解码为dex2jar)

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

其他回答

这两篇文章描述了如何结合使用apktool和dex2jar来获取APK文件并创建一个可以构建和运行它的Eclipse项目。

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

基本上你:

使用apktool从apk中获取资源文件使用dex2jar获取一个jar文件,其中包含Eclipse喜欢的格式的类。创建一个Eclipse项目,指向资源文件和新的jar文件使用zip实用程序打开jar文件并删除现有资源使用JDGui打开jar文件以查看源代码从JDGui中获取所需的任何源代码,将其粘贴到Eclipse中的一个类中并进行修改从jar文件中删除该类(这样就不会多次定义相同的类)运行它。

单击解决方案(仅限Windows)

在阅读了这篇loooooonnnnngggg帖子后,我决定创建一个自动化的过程,只需单击一下即可反编译APK,

我决定在github上分享:https://github.com/shaybc/apk-decompiler

simply unzip,
copy the apk you want to decompile into "apk-source" folder
and run "go.bat"
find the result in the: "apk-output" folder

就这样,享受吧

apktool是你能尝试的最好的方法。我用它保存了一些xml,但老实说,我不知道它如何与.java代码一起工作。

我建议您拥有一个代码库,即使您是唯一的程序员。我一直在为自己的项目使用Project Locker。它为您提供免费svn和git repo。

根据您的情况,如果您的android apk:

条件1:不硬化(由腾讯Legu/奇虎360/…)

选项1:使用在线服务

例如:

使用www.javadecompilers.com

转到:

http://www.javadecompilers.com/apk注:内部使用Jadx

从apk到java源代码的自动解码

步骤:

上传apk文件+单击运行+等待一段时间+单击下载以获取zip+解压缩->

sources/com/{yourCompanyName}/{yourProjectName}

是您期望的java源代码吗

选项2:自行反编译/破解

使用相关工具自行反编译/破解:

使用jadx/jadxgui将apk转换为java源代码

下载jadx-0.9.0.zip,然后解压到bin/jadx,然后:

命令行模式:在终端运行中:jadx-0.9.0/bin/jadx-o output_folder/path_to_your_apk/your_apk_file.apkoutput_folder将显示解码的源和资源sources/com/{yourCompanyName}/{yourProjectName}是预期的java源代码GUI模式双击运行jadx-0.9.0/bin/jadx-gui(Linux的jadx-gui.sh/Windows的jadxgui.bat)打开apk文件它将自动解码->查看预期的java源代码全部保存或另存为Gradle项目

eg:

条件2:硬化(由腾讯Legu/奇虎360/…)

主要方法有3个步骤:

apk/app到dexdex到jarjar到java src

详细说明:

步骤1:apk/app to dex

使用工具(FDex2/DumpDex)从运行的应用程序转储/挂出(一个或多个)dex文件

步骤:

准备环境

根深蒂固的机器人真实电话或仿真器这里使用中文Nox App Player夜神安卓模拟器安装你的android apk到电话或模拟器已安装Xposed安装程序将FDex2/DumpDex安装到XPosed中并启用它注意:需要重新启动Xposed才能使FDex2工作FDex2下载地址,中文:脱壳工具 FDex2 CSDN下载链接: https://pan.baidu.com/s/1lTF8CN96bxWpFwv7J174lg 提取码: 3吨将android apk安装到手机/模拟器

从运行的应用程序中转储dex

运行FDex2,然后单击apk名称,以便稍后捕获/挂接dex(在电话/模拟器中)运行应用程序在/data/data.com/yourCompanyName/yourProjectName中查找并复制整个apk资源在其根文件夹中通常会找到几个dex文件

第2步:索引到jar

使用工具(dex2jar)将(特定的,包含应用程序逻辑的)dex文件转换为jar文件

下载dex2jar得到dex-tools-2.1-SNAPSHOT.zip,解压缩得到dex-tool-2.1-SNAPPSHOT/d2j-dex2jar.sh,然后

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh-f your_dex_name.dex

eg:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

步骤3:jar到java src

使用以下工具之一:

Jadx公司Procyon公司基于procyon的GUI工具:Luyten公司字节码查看器CRF公司JD-GUI其他一些:克拉卡塔费恩鲍尔(Fernflower)卡瓦杰

将jar转换为javasrc

对于从jar到javasrc的转换效果:

Jadx>Procyon>CRF>>JD-GUI

所以建议使用:Jadx/Jadx-gui

步骤:

双击运行jadxgui打开dex文件文件->全部保存

eg:

导出的java src:


更详细的解释可以看我的在线电子书中文教程:

安卓应用的安全和破解github上教程的源代码:crifan/android_app_security_crack:安卓应用的安全和破解

为了反编译APK并从中获取代码,您有多个在线工具&我通常更喜欢使用在线APK反编译程序。

它非常容易使用,几分钟内您就可以从中下载源代码。

如果你想从playstore下载APK并反编译。你也可以很容易地从它下载。