当前位置: 首页 > 面试题库 >

如何混淆Flutter应用程序?

公孙栋
2023-03-14
问题内容

Flutter的Wiki提到混淆是发布模式的一种选择。
但是, flutter build 命令没有相关选项-请参阅:
flutter help -v build apk

我在这里想念什么吗?
他们是否将混淆设置为默认设置?
混淆甚至与颤动有关吗?

任何对此的指针将不胜感激。


问题答案:

需要进行混淆-扑扑的应用程序知道其功能名称,可以使用Dart的StackTrace类显示该名称。有 下测试 的混淆支持。要启用它:

对于Android
添加到文件[ProjectRoot]/android/gradle.properties

extra-gen-snapshot-options=--obfuscate

对于iOS:
首先,编辑[FlutterRoot]/packages/flutter_tools/bin/xcode_backend.sh
找到该build aot呼叫,并为其添加一个标志,

${extra_gen_snapshot_options_or_none}

定义为:

local extra_gen_snapshot_options_or_none=""
if [[ -n "$EXTRA_GEN_SNAPSHOT_OPTIONS" ]]; then
  extra_gen_snapshot_options_or_none="--extra-gen-snapshot-options=$EXTRA_GEN_SNAPSHOT_OPTIONS"
fi

要应用更改,请在[FlutterRoot]中运行

git commit -am "Enable obfuscation on iOS"  
flutter

(在提交重建Flutter工具后运行“ flutter”。)

接下来,在您的项目中,将以下内容添加到[ProjectRoot]/ios/Flutter/Release.xcconfig文件中:

EXTRA_GEN_SNAPSHOT_OPTIONS=--obfuscate

PS:还没有尝试过 https://github.com/dart-
lang/sdk/issues/30524中提到的–
save-obfuscation-map标志 ,正如@mraleph所提到的
,对混淆的 测试* 还不 是很好。 *



 类似资料:
  • 问题内容: 由于fxml- files使用Controller类来处理事件,因此如何混淆JavaFX应用程序?当混淆的conntroller类具有不同的名称和路径时,fxml文件将找不到它们。 混淆后编辑fxml文件不是我想要的解决方案。 还有其他选择吗? 问题答案: 没有意义重塑轮子; 快速的google搜索产生了这个网站。 它使用Proguard混淆器。

  • 问题内容: 混淆Java Web应用程序值得吗?为什么呢? 问题答案: 否。代码存储在服务器上,希望外部用户无法访问该服务器。如果您认为值得(最低限度)的IP保护,则可能希望混淆JavaScript。 最好的办法是确保服务器的安全性达到最高水平,并且您没有对应用程序目录的开放访问权限(无论如何都不应该发生)。

  • 我需要混淆一个Java应用程序,它依赖于许多外部JAR。该应用程序由许多模块组成,每个模块都包含API和实现JAR。基本上,我需要创建一个gradle任务来混淆所有这些jar,这些jar可以稍后在Jenkins的构建过程中使用。有许多关于Proguard的文档,但大部分都涉及Android应用程序。 已经提到官方的ProGuard留档在这里:ProGuard Gradle插件

  • 问题内容: 我想制作一个不是开源的JavaScript应用程序,因此我想学习如何混淆我的JS代码?这可能吗? 问题答案: 可以使用: Google Closure编译器 UglifyJS 更新:这个问题最初是在10多年前提出的,并且不再维护YUI。 Google Closure编译器仍在使用,并且UglifyJS可以通过节点包管理器在本地运行: 私有字符串数据: 将字符串值设为私有是另一个问题,而

  • 我一直在摆弄Proguard配置,我想测试只是为了优化 但我仍然会遇到这样的错误: java.lang.IllegalArgumentExc0019:找不到[org/apache/log/log4j/core/jackson/Log4jXmlMoules](有1个已知的超级类)和[org/apache/log/log4j/core/jackson/Log4jJsonMoules](有4个已知的超级

  • Powershell的混淆目前已经使用的越来越多,国内外也有了较多的研究,在今年的BH大会上也有对应的议题,关注点是反混淆,那么里面的一些姿势很值得我们学习,我们提供一些混淆实例,来让大家对于PS的混淆做到一个初步了解,也为防御混淆提供一些思路。 实例 在混淆之前,先看看powershell编码执行的方式。 -EC,-EncodedCommand,-EncodedComman,-EncodedCo

  • 问题内容: 我正在使用带有react的ES6 babel,现在对于较新版本的react,react DOM不再是它的一部分。我对以下代码的怀疑是,这是第一行吗?因为我无处需要React,但最后一行需要ReactDOM。 问题答案: 从版本开始,React 分为两个部分: React 和 ReactDOM。 您正在使用。因此,对您而言,在组件中绝对有意义。但是就React而言,尽管您不是直接使用Re

  • 我在我的应用程序中使用Spring for Android,并试图使用ProGuard进行模糊/优化/收缩。我在运行时得到以下异常: 原因:org.springframework.web.client.restClientException:无法写入请求:在org.springframework.web.client.restTemplate$HttpEntityRequestCallback.d