function pchwidmd5:string;//VMP硬件号,返回MD5
var
buf: array [0…127] of AnsiChar;
md5:TIdHashMessageDigest5;
begin
VMProtectBegin(‘hwid’);
MD5 := TIdHashMessageDigest5.Create;
FillChar(buf, 0, sizeof(buf));
VMProtectGetCurrentHWID(buf, sizeof(buf));
//ShowMessage(buf);
result:= md5.HashStringAsHex(string(buf),IndyTextEncoding_UTF8);
//result:=string(buf);
md5.Free ;
VMProtectEnd ;
//edHWID.Text := buf;
end;
VMP加壳动态检查函数
//VMProtectIsProtected 检查文件是否在保护中
// VMProtectIsDebuggerPresent 检查是否被 调试器调试
// VMProtectIsVirtualMachinePresent /检查是否为虚拟机运行
//VMProtectIsValidImageCRC 检查进程内存是否补修改
if (not (VMProtectIsProtected())) or (VMProtectIsDebuggerPresent(False)) or
(VMProtectIsDebuggerPresent(True)) or (not (VMProtectIsValidImageCRC())) then
begin
Application.Terminate;//退出,有一项不符就退出
end;