繁体   English   中英

使用“--dart-define”go 定义的变量在哪里,我们可以对它们进行逆向工程吗?

[英]where does the variables defined using "--dart-define" go and can we reverse engineer them?

我正在构建一个颤振应用程序。 我不想通过将它放在代码中来破坏我的secret_key ,所以我尝试制作一个.env文件并创建了一个 apk。 然后我解压缩了apk并在那里找到了我的配置文件。 所以现在我不这样做了。

我尝试的下一件事是在构建应用程序时使用--dart-define变量声明来放置我的secret_key ,我正在使用它访问它

const secret = String.fromEnvironment("secret_key");

来到这个问题,这些变量 go 在 dart 代码中在哪里,有没有办法通过逆向工程来获得它们。 基本上以这种方式放置我的密钥是否安全?

根据我的发现,您可以在为每个 ABI 生成的二进制文件中找到--dart-define变量,所以的,您可以对其进行逆向工程。

如何尝试:

  1. 使用String.fromEnvironment("ANIMAL")从您的代码中调用变量。

  2. 运行flutter build apk --dart-define=ANIMAL=Dog为 Android 构建

  3. 使用文件存档器(例如 7-Zip)打开生成的 .APK 文件并导航到/lib/(ABI)/

  4. 使用文本编辑器或十六进制查看器打开/lib/(ABI)/libapp.so文件并搜索值Dog你会找到它

观察:

  • 如果您不在代码中使用该变量,则不会将其添加到二进制文件中
  • 使用--obfuscateflutter build将无济于事,因为它不会混淆环境变量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM