彩票走势图

logo VMPsoft中文文档
文档彩票走势图>>VMPsoft中文文档>>许可系统 API 功能

许可系统 API 功能


VMProtect 是新一代软件盗版保护解决方案。VMProtect 是目前强大的反盗版解决方案之一,许多领先的软件发行商都在使用它。VMProtect允许保护可执行文件(EXE,SCR),动态链接库(DLL,OCX,BPL)和驱动程序(SYS)。

VMProtect最新版下载

加密解密技术交流群(766135708)

许可系统 API 功能
许可系统 API 是 VMProtect API 及其 SDK 的一个组成部分。API 允许你指定一个序列号,并搜索关于它的所有信息:是否适合该程序,序列号是否过期,该产品注册的名称等等。此外,该API还提供了程序运行的计算机的硬件标识符。

VMProtectSetSerialNumber

该函数向许可系统加载一个序列号。调用语法:

int VMProtectSetSerialNumber(const char *SerialNumber);

输入的SerialNumber参数必须包含一个指针,指向一个包含base-64编码的序列号的空尾字符串('\0′)。该函数返回一个序列号状态标志的位掩码,与VMProtectGetSerialNumberState()返回的相同。你可以在下面阅读更多关于标志的信息。如果该函数返回0,则序列号为 "good"。

VMProtectGetSerialNumberState

该函数为调用VMProtectSetSerialNumber()指定的序列号返回状态标志。

int VMProtectGetSerialNumberState();

如果至少有一个标志被设置,说明序列号有问题,程序就不应该工作。标志和它们的值的详细描述列在下表中:

Flag Value Description
SERIAL_STATE_FLAG_CORRUPTED 0×00000001 许可系统被破坏。可能的原因是:保护项目的设置不正确,试图破解。
SERIAL_STATE_FLAG_INVALID 0×00000002 序列号不正确。如果许可系统不能解密序列号,则设置该标志
SERIAL_STATE_FLAG_BLACKLISTED 0×00000004 序列号与产品相符,但在VMProtect中被列为黑名单。
SERIAL_STATE_FLAG_DATE_EXPIRED 0×00000008 序列号已经过期。你可以通过调用VMProtectGetSerialNumberData()获得关于过期日期的详细信息
SERIAL_STATE_FLAG_RUNNING_TIME_OVER 0×00000010 程序的操作时间已耗尽。你可以通过调用VMProtectGetSerialNumberData()获得有关程序运行时间的详细信息。
SERIAL_STATE_FLAG_BAD_HWID 0×00000020 硬件标识符与密钥中规定的硬件标识符不一致。
SERIAL_STATE_FLAG_MAX_BUILD_EXPIRED 0×00000040 序列号与被保护程序的当前版本不匹配。你可以通过调用 VMProtectGetSerialNumberData()获得与该序列号匹配的程序的最大构建日期。

VMProtectGetSerialNumberData

该函数获取调用VMProtectSetSerialNumber()获得的序列号的内容信息。调用语法;

bool VMProtectGetSerialNumberData(VMProtectSerialNumberData *Data, int Size);

第一个参数是一个指向VMProtectSerialNumberData结构的指针,所有必要的信息都将被写入该结构。第二个参数是第一个参数中传递的结构的大小。它被要求用来控制结构的格式。如果许可系统被破坏(见SERIAL_STATE_FLAG_CORRUPTED标志),如果提供的结构地址为零,或者传递的结构大小不正确,该函数返回FALSE。在所有其他情况下,该函数返回TRUE,并将所有关于序列号的信息记录到提供的地址。下面是该结构的成分:

Element Type Description
nState int 表示一个键的状态的位标志掩码。类似于VMProtectGetSerialNumberState()
wUserName wchar_t[256] 以UNICODE为单位的客户名称,以空结尾
wEMail wchar_t[256] 密钥过期日期。VMProtectDate结构的格式描述如下。
dtExpire VMProtectDate 密钥过期日期。VMProtectDate结构的格式描述如下。
dtMaxBuild VMProtectDate 给定的密钥可以使用的最大产品构建日期。VMProtectDate结构的格式描述如下。
bRunningTime int 程序将工作的分钟数(一个疗程的最长时间)。以分钟为单位的数值从程序开始时算起。.
nUserDataLength unsigned char bUserData字段中用户数据的长度。
bUserData unsigned char[255] 放入密钥的用户数据。实际的字节数在nUserDataLength中指定。

VMProtectDate结构通过一个紧凑的日期表示。它的字段在下表中列出:

Element Type Description
wYear unsigned short
bMonth unsigned char 月,从一开始
bDay unsigned char 日,从一开始

VMProtectGetCurrentHWID

该函数获取程序所工作的PC的硬件标识符。调用句法:

int VMProtectGetCurrentHWID(char * HWID, int Size);

第一个参数是一个指针,指向标识符被写入的内存区域。第二个参数是这个区域的大小。该函数返回写入的字节数,包括后面的零字节('\0′)。如果在第一个参数中提供了NULL,该函数将返回存储硬件标识符所需的字节数。下面是使用该函数的正确方法:

 
int nSize = VMProtectGetCurrentHWID(NULL, 0); // get the required buffer size
char *pBuf = new char[nSize]; // allocate memory for the buffer 
VMProtectGetCurrentHWID(pBuf, nSize); // obtain the identifier
// use the identifier 
delete [] pBuf; // release memory
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP