.net - 如何使用.net_reactor?
问题描述
有人用过 .net_reactor 来保护代码吗?我已经保护了可执行程序集,但不知何故没有许可证文件,我仍然设法运行可执行文件
尝试示例项目,输出如下:
我还使用 SDK 创建了一个示例项目,以获取不同参数值的值,如下所示:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using License;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
string HardwareID;
string HardwareIDLicense;
InitializeComponent();
HardwareID=License.Status.GetHardwareID(true, true, true, false);
HardwareIDLicense = License.Status.License_HardwareID;
MessageBox.Show("HardwareID" + HardwareID);
MessageBox.Show("HardwaeIDLicense" + HardwareIDLicense);
}
}
}
我得到了 HardwareIDLicense 的以下输出:
它是空的:有人知道为什么吗?我需要设置什么?
许可证文件也已生成。
解决方案
如果您使用 .NET Reactor Visual Studio 插件自动保护您的软件,您应该检查“项目输出是部署项目的一部分”。这样编译后的文件将直接替换为受保护的文件。否则,受保护的文件将被复制到“..._secure”子目录中。如果您直接从 _secure 子目录运行受保护的应用程序,它应该会显示硬件 ID。
SDK 库 License.dll 只是一个虚拟程序集,不包含真正的许可和硬件 ID 代码。License.dll 的唯一目的是在您编译的软件中进行引用。然后在保护时,.NET Reactor 替换引用并注入真实代码。这就是为什么它只有在保护后才能正常工作的原因。因此,实际执行受保护的文件非常重要。
推荐阅读
- scala - Spark 2.4 无法使用变量插入记录
- python - tkinter 文本框忽略索引
- python - 通过用户输入将列表传递给 pandas 查询
- python - 如何检查日期时间索引数据帧的连续性
- node.js - 为什么sequelize会自动创建两个表?
- java - 如何使用引用的库创建 JAR?
- python - 使用 cython 和指向内存起始地址的指针更改不可变的等离子存储 numpy 对象
- angular - 带有 --configuration 标志的 Angular ng serve 在生成浏览器应用程序包时卡住了
- python - 我无法在 python 上运行 pyttsx3
- reactjs - 与 Redux (mapStateToProps) 连接的 ErrorBoundary 组件上的 TypeScript 错误