【问题标题】:.NET Assembly protection with .NET Reactor.NET 程序集保护与 .NET Reactor
【发布时间】:2011-11-08 05:27:51
【问题描述】:

我正在测试 Eziriz .NET Reactor 以保护使用 Visual Studio 2010 C# WPF 开发的软件。

当 .NET Reactor 询问要保护哪个程序集时,我感到很困惑。我虽然它应该保护用户将安装的 .msi 文件。但它要求我上传一个 .exe 的程序集文件。因此,我将 .exe 上传到我的 bin/Debug 文件夹中,该文件夹是通过在 Visual Studio 中构建解决方案而生成的。

在 .NET Reactor 上运行保护后,我用 .NET Reflector 打开同一个 .exe 文件,仍然可以看到所有的类和方法。什么都没有受到保护。

我已通读文档 - 它只是不起作用还是我做错了什么?

【问题讨论】:

  • 请提供执行混淆器的命令。

标签: .net protection reactor


【解决方案1】:

Visual Studio 通常在进行设置时会重新构建整个项目。因此,受保护的 exe(您生成的 .NET Reactor)将被 Visual Studio 覆盖。

您应该添加一个构建后事件(可在 Visual Studio 项目属性中找到),它会在构建后直接调用 .NET 反应器来保护 DLL。

请注意,该事件应仅在发布构建时运行,否则您将无法调试您的应用程序。问题是您不能仅为发布模式添加构建后事件。解决方案是进行如下检查:How to run Visual Studio post-build events for debug build only

【讨论】:

  • Visual Studio 在进行设置时会生成 .msi 安装程序,而不是 .exe。 Visual Studio 仅在我按 F5 构建/调试解决方案时创建一个 .exe。我应该保护什么?我的 XAML?我的 .cs 文件?我的 .exe 还是我的 .proj?还是所有文件?
  • 没有。您的解决方案中很可能有两个项目。一个用于 WPF 应用程序,一个用于设置。
【解决方案2】:

.NET Reactor 只能保护您的 .NET 程序集(.exe、.dll),但不能保护 setup.msi 或 setup.exe 等其他文件。

根据 VS 项目的类型(尤其是部署/设置项目),通过 Post-build 事件保护程序集可能为时已晚。

如果您想在设置中包含 VS 项目文件输出 (exe/dll),您可以通过以下方式使用 .NET Reactor Visual Studio 插件:

  • 打开 .NET Reactor 并安装 Visual Studio 插件(.NET Reactor 主菜单项帮助/Visual Studio -> 安装 Visual Studio 20xx 插件)。
  • 打开您的 Visual Studio 项目并打开插件(Visual Studio 主菜单项工具 -> .NET Reactor)。
  • 勾选“已启用”
  • 选中“项目输出是部署项目的一部分(设置、ClickOnce)”
  • 您可以通过定义 .NET Reactor 项目文件或通过命令行开关来定义保护设置
  • 如果是 ClickOnce 项目,请添加“-invalid_metadata 0”作为命令行参数(以防止出现部署问题)
  • 单击“确定”并允许 .NET Reactor 修改您的 Visual Studio 项目文件

通过这种方式修改 Visual Studio 项目文件,以便在正确的时间访问 .NET Reactor(在您的程序集被编译之后,但仍然在它被添加到安装程序包之前)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-12
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    相关资源
    最近更新 更多