c# - Windows 安装程序 (.msi)。自定义操作。我是否需要混淆/保护用 C# 编写的自定义操作代码?有没有办法拆开?
问题描述
我们正在开发桌面应用程序,我们使用 Wix 工具集来创建 .msi 安装程序。
我们使用“.Net Reactor”来混淆和保护 C# 代码。但是我们也有一些我们想要保护的自定义操作(在 .msi 中)。
所以问题是我们是否需要担心保护它们,如果需要,保护它们的最佳方法是什么?我们是否需要混淆自定义操作项目所依赖的所有 dll?
解决方案
没有敏感,没问题:我赞同克劳斯所说的:这段代码是否包含任何敏感信息?通常,敏感方面将围绕您想要保护的某种许可或密钥。一定要编译发布模式的二进制文件(不这样做会很疯狂——在普通机器上也不会满足运行时要求)。
保护敏感信息:我前段时间写了一个完整的清单,关于避免使用您的部署解决方案分发敏感信息的问题:如何避免意外在我的 MSI 中分发敏感信息?(其中一个在你写作时偏离轨道的庞大答案 - 可能仍然值得略读)。
本机代码:如果您对敏感性有重大顾虑,我会编译一个 C++ 自定义操作而不是托管代码自定义操作,以使事情更加“深入人心”。这对于确保最小的运行时依赖(静态链接)也很有用。
开源:坦率地说,如果不存在敏感性,我会考虑开源我的整个设置代码。用户是否有问题可以自己调试 - 尽管在许多情况下这样做的好处可能是天上掉馅饼。您可以关闭需要敏感度的单个自定义操作。我会使用开源作为销售论点 - 是的,如果需要,您可以查看我们的设置源来调整您的环境。
设置就像简历:它只是作为传递其他有价值的东西的工具吗?它本身没有任何价值。您想首先销售您的软件吗?当然还有安全性。允许用户从您的源代码编译他们自己的设置也可能会导致问题 - 当然。你想支持自编译设置吗?
推荐阅读
- sql - SQL 喜欢但不喜欢
- ios - 如何确保 iOS 项目中故事板的名称字符串是正确的?
- python - discord python bot - 如何不使用 on_message 发送消息
- python - 如何使用 BeautifulSoup 逐行读取数据?
- c# - 使用 Ifc2x3 获取对象的所有属性
- python - 如何执行 numpy 数组的未排序比较?
- android - 返回小部件时未运行 Future Builder
- typescript - 忽略对打字稿装饰器的覆盖
- powerbi - 如何根据使用 power bi DAX 公式提交的日期中的数字分配 1 st、2 nd、3 rd 等?
- python - 我想将 urdu 抓取数据保存到 csv 文件中,但是当我打开文件时,文件格式不可读