使用.NET Reactor的.NET程序集保护

pepwfjgg  于 2023-04-22  发布在  .NET
关注(0)|答案(2)|浏览(119)

我正在测试Eziriz**.NET Reactor**来保护一个使用Visual Studio 2010 C# WPF开发的软件。
当.NET Reactor询问要保护哪个程序集时,我感到困惑。我以为它应该保护用户将要安装的.msi文件。但它要求我上传一个程序集文件,该文件是. exe。所以我上传了bin/Debug文件夹中的.exe,该文件是通过在Visual Studio中构建解决方案生成的。
在.NET Reactor上运行保护后,我用.NET Reflector打开相同的.exe文件,我仍然可以看到所有的类和方法。没有任何东西被保护。
我已经通读了文档-是它不起作用还是我做错了什么?

qyyhg6bp

qyyhg6bp1#

.NET Reactor只能保护.NET程序集(.exe、.dll),而不能保护其他文件,如setup.msi或setup.exe。
根据VS项目的类型(特别是部署/设置项目),通过后期构建事件保护程序集可能为时已晚。
如果您想在安装程序中包含VS项目文件输出(exe/dll),您可以通过以下方式使用.NET Reactor Visual Studio加载项:

  • 打开.NET Reactor并安装Visual Studio Add-in(.NET Reactor主菜单项Help/Visual Studio -〉Install Visual Studio 20 xx Add-In)。
  • 打开Visual Studio项目并打开外接程序(Visual Studio主菜单项工具-〉.NET Reactor)。
  • 勾选“已启用”
  • 选中“项目输出是部署项目的一部分(安装程序,ClickOnce)”
  • 您可以通过定义. NETReactor项目文件或通过命令行开关来定义保护设置
  • 如果是ClickOnce项目,请添加'-invalid_metadata'作为命令行参数(以防止部署问题)
  • 单击OK并允许. NETReactor修改VisualStudio项目文件

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

jtjikinw

jtjikinw2#

Visual Studio通常会在进行安装时重新生成整个项目。因此,受保护的exe(您生成的.NET Reactor)将被Visual Studio覆盖。
您应该添加一个 *Post-build事件 *(可以在Visual studio项目属性中找到),该事件在生成DLL后直接调用.NET reactor来保护DLL。
请注意,事件应该只在发布构建时运行,否则您将无法调试应用程序。问题是您不能仅为发布模式添加构建后事件。解决方案是执行如下检查:How to run Visual Studio post-build events for debug build only

相关问题