Flutter debug Apk 反编译获取源码

Jag*_*ngh 15 decompiler flutter

由于驱动器损坏,我丢失了 Flutter 应用程序的源代码,但debug.apk我的 android 手机中有我的源代码。谁能告诉我如何反编译 Flutterapk以获取源代码。我尝试使用反编译器反编译它,但它没有提供我的源代码,因为 flutter 源代码是 dart 语言。

use*_*955 15

如果您的 debug.apk 处于调试模式,那么您可以使用apktool它来提取apk(我使用提取这个词,因为它apk是一个 zip 文件) 的组件。

Flutter 在调试模式下,将源代码(带注释!)保存在文件 kernel_blob.bin 中。因此,使用以下命令应该可以帮助您将代码提取到文件中:

strings /path/to/extracted/apk/assets/flutter_assets/kernel_blob.bin > extracted_code.dart
Run Code Online (Sandbox Code Playgroud)

注意- 您需要从不相关/垃圾字符串中清除“extracted_code.dart”。

尝试在“extracted_code.dart”中搜索“dart”、“import”、“void”等关键字,它会帮助您找到代码本身。

这是我的 Ubuntu 中的一个示例:

例子

如果apk在“发布”模式下编译,则提取代码将困难得多,因为代码被编译成isolate_snapshot_instr 文件,该文件不是原始arm 程序集,并且仅在运行时使用Flutter 引擎进行反序列化。你可以在这里阅读更多关于它的信息


归档时间:

查看次数:

18011 次

最近记录:

5 年,6 月 前