我可以使用密钥库反编译项目吗? [复制]

Posted

技术标签:

【中文标题】我可以使用密钥库反编译项目吗? [复制]【英文标题】:Can I decompile project with keystore? [duplicate] 【发布时间】:2015-04-15 09:07:48 【问题描述】:

丢失了我的 USB,它正在运行我的 android 项目。 我刚刚测试了那个应用程序,所以我只有那个 apk。 我可以将 apk 提取到项目中吗...?

【问题讨论】:

提示:使用云解决方案来保存您的开发文件。我个人的 Dropbox 文件夹中有我的工作区,所以它可以实时同步我的开发文件。即使我的电脑着火了,它们仍然会得救。 【参考方案1】:

来自link

为了这个目的,首先你把这个apk反编译成源代码,用于反编译apk下面的目的

第 1 步:

创建一个新文件夹并复制您要解码的 .apk 文件。

现在将此 .apk 文件的扩展名重命名为 .zip(例如,从 filename.apk 重命名为 filename.zip)并保存。现在你可以访问 classes.dex 文件等了。在这个阶段你可以看到 drawables 而不是 xml 和 java 文件,所以继续。

第 2 步:

现在将这个 .zip 文件解压到同一个文件夹(或 NEW FOLDER)中。

下载dex2jar并将其解压到同一文件夹(或NEW FOLDER)。

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

现在打开命令提示符并将目录更改为该文件夹(或 NEW FOLDER)。然后编写 d2j-dex2jar classes.dex 并回车。您现在在同一文件夹中拥有 classes_dex2jar.jar 文件。

下载java decompiler,双击jd-gui,点击打开文件,从那个文件夹打开classes.dex.dex2jar文件:现在你得到了类文件。

通过 src 名称保存所有这些类文件(在 jd-gui 中,单击 File -> Save All Sources)。在这个阶段,您获得了 java 源代码,但 .xml 文件仍然无法读取,所以继续。

第 3 步:

现在打开另一个新文件夹

放入你要解码的.apk文件

下载最新版本的apktool(都可以从同一个链接下载)并放在同一个文件夹中

下载framework-res.apk并放在同一个文件夹下(不是所有的apk文件都需要这个文件,但也无妨)

打开命令窗口

导航到APKtool的根目录并输入以下命令:apktool if framework-res.apk

apktool d myApp.apk(其中 myApp.apk 表示您要解码的文件名)

现在您在该文件夹中获得了一个文件夹,并且可以轻松读取 apk 的 xml 文件。

第 4 步:

这不是任何步骤,只需将两个文件夹(在本例中为两个新文件夹)的内容复制到单个文件夹

并更新源代码...

【讨论】:

以上是关于我可以使用密钥库反编译项目吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何保护 API 密钥? [复制]

反编译一个android apk? [复制]

linux 下如何将动态链接库.so进行反编译后,换编译器重新编译?

Flutter REST API 安全性

如何保护解密密钥不被反编译?

如何从 APK 反编译中保护 Fabric API 密钥?