我们应该在Flutter应用中混淆Dart代码吗?

时间:2018-10-11 19:45:13

标签: dart flutter obfuscation

问题与此相关:How to check obfuscation results of flutter app? 但是答案还不清楚。

黑客是否有可能在Flutter应用中看到飞镖代码?还是以难以理解和跟踪的方式进行编译?

解压缩flutter build apk产生的apk之后,我发现与自己的Dart代码相关的唯一文件是“ libflutter.so”。用nm -D libflutter.so查看其中的函数并没有显示出与我的代码相似的内容,因此看起来很安全。但是-我想要一个真正认识的人,也许我错过了一些东西。

发布Flutter应用程序的最佳实践是什么?

更新截至2018年10月12日: 我曾尝试按照此处提到的方法进行混淆:https://github.com/flutter/flutter/wiki/Obfuscating-Dart-Code 这导致应用程序损坏(启动时崩溃)。 所以-看来-目前尚没有真正的选项来进行混淆。

2 个答案:

答案 0 :(得分:4)

在调试模式下,flutter应用程序会从源代码中清除。这要求将源与应用程序一起分发。但是,您不应该分发调试版本,因此不必担心这种可能性。

在发布模式下,您的源代码是AoT编译的,因此没有源代码的实际副本,但是如果有人想重新创建它,他们可能会(轻松地?)对程序集进行反向工程。

如果您想混淆编译后的代码,最好的选择是遵循此处给出的建议: https://github.com/flutter/flutter/wiki/Obfuscating-Dart-Code

我并没有声称自己是专家,所以请您自己进行研究,但希望这会为您指明正确的方向。

进一步了解构建过程: https://proandroiddev.com/flutters-compilation-patterns-24e139d14177

答案 1 :(得分:-1)

如果您想防止您的应用在购买时被黑客入侵。您可以使用来自pub.dev的store_checker软件包来检查您的应用是从Play商店/应用商店下载还是从其他来源下载,并采取相应的措施。

https://pub.dev/packages/store_checker