首页 > 解决方案 > Windows 安装程序 (.msi)。自定义操作。我是否需要混淆/保护用 C# 编写的自定义操作代码?有没有办法拆开?

问题描述

我们正在开发桌面应用程序,我们使用 Wix 工具集来创建 .msi 安装程序。

我们使用“.Net Reactor”来混淆和保护 C# 代码。但是我们也有一些我们想要保护的自定义操作(在 .msi 中)。

所以问题是我们是否需要担心保护它们,如果需要,保护它们的最佳方法是什么?我们是否需要混淆自定义操作项目所依赖的所有 dll?

标签: c#wixinstallshieldcustom-action

解决方案


没有敏感,没问题:我赞同克劳斯所说的:这段代码是否包含任何敏感信息?通常,敏感方面将围绕您想要保护的某种许可密钥。一定要编译发布模式的二进制文件(不这样做会很疯狂——在普通机器上也不会满足运行时要求)。

保护敏感信息:我前段时间写了一个完整的清单,关于避免使用您的部署解决方案分发敏感信息的问题:如何避免意外在我的 MSI 中分发敏感信息?(其中一个在你写作时偏离轨道的庞大答案 - 可能仍然值得略读)。

本机代码:如果您对敏感性有重大顾虑,我会编译一个 C++ 自定义操作而不是托管代码自定义操作,以使事情更加“深入人心”。这对于确保最小的运行时依赖(静态链接)也很有用。

开源:坦率地说,如果不存在敏感性,我会考虑开源我的整个设置代码。用户是否有问题可以自己调试 - 尽管在许多情况下这样做的好处可能是天上掉馅饼。您可以关闭需要敏感度的单个自定义操作。我会使用开源作为销售论点 - 是的,如果需要,您可以查看我们的设置源来调整您的环境。

设置就像简历:它只是作为传递其他有价值的东西的工具吗?它本身没有任何价值。您想首先销售您的软件吗?当然还有安全性。允许用户从您的源代码编译他们自己的设置也可能会导致问题 - 当然。你想支持自编译设置吗?


推荐阅读