主页 » 支持 » 用户手册 » 授权系统 » 序列号生成器 » .Net-版本

.Net-版本

描述

密钥生成器的 .Net 版本是包含生成序列号所需的所有内容的构建。源代码在 Keygen\Net 中作为两个工程:KeyGen(密钥生成器本身)和 Usage(密钥生成器的使用示例)。

密钥生成器在源代码中提供,用于在给定版本的 .Net Framework 下快速构建,但是我们强烈不建议对代码应用任何更改。在 VMProtect 的未来版本中,可能会向生成器添加一些新的可能性,这可能会导致代码的重复修改。此外,这可能会导致非常难以定位的错误。如果您在生成器的原始代码中发现错误或想提出改进建议,请联系支持团队。

使用生成器

Usage 工程中的代码为基础,然后将指向 VMProtect.KeyGen.dll 构建的链接添加到您的工程中。之后,您将能够在您的应用程序中生成序列号。为了正常运行,生成器必须“知道”您为哪个产品生成序列号。为此,在 VMProtect 中打开菜单“工程 | 导出密钥对”对话框并选择“KeyGen.Net 的参数”选项。下面的文本区域将包含文本信息,您应该将其作为字符串常量复制并粘贴到应用程序中。

这是调用生成器的示例代码:

try
{
        string data = @""; // 把导出的数据放在这里
        Generator g = new Generator(data);
        g.UserName = "John Doe";
        g.EMail = "john@doe.com";
        g.ExpirationDate = DateTime.Now.AddMonths(1);
        g.MaxBuildDate = DateTime.Now.AddYears(1);
        g.RunningTimeLimit = 15;
        g.HardwareID = "AQIDBAgHBgU=";
        g.UserData = new byte[] { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
        string serial = g.Generate();
        Console.WriteLine("序列号: \n{0}\n", serial);
}
catch (Exception ex)
{
        Console.WriteLine("Error: {0}", ex);
}
        

您从 VMProtect 复制的字符串应放置到作为参数传递给序列号类构造函数的 数据变量中。 如果在解析产品数据时出现任何问题,构造函数会抛出包含问题描述的异常。如果构造函数成功完成其工作,则生成器准备好生成序列号。

序列号可以包含使用生成器属性指定的各种信息。上面的示例显示了如何填写序列号的所有字段。某些领域有限制。例如, 用户名电子邮件 不能接受 UTF-8 编码中超过 255 个符号的字符串。如果提供了不正确的数据,属性会抛出包含问题描述的异常。

生成器设置完成后,将调用 Generate() 方法。此方法生成一个序列号。在这一步,将序列号的所有数据合并,计算校验和并对数据进行加密。如果数据量超过允许的长度,该方法会抛出异常。

如果需要生成多个序列号,可以连续多次使用生成器类,无需从头创建。要清除生成器的任何给定属性,只需为其分配一个 值。