第一步
编写源程序。在程序中使用有关license的SDK。下面的例子中定义license文件是 test.lic
demo.for.unpackcn.rar (35.95 KB, 下载次数: 66)
例子主要代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var
i : Longword ;
F : textfile ;
pbuffer: array[0..$1000] of char;
code : Longword ;
licData : TVMProtectSerialNumberdata ;
begin
if fileexists('test.lic') then
begin
fillchar(licData,sizeof(licdata),0);
assignfile(F,'test.lic');
reset(f);
for i := 0 to $1000 do
if not eof(f) then read( f,pbuffer[ i ] ) else break;
closefile(f);
VMProtectSetSerialNumber(pbuffer) ;
code := VMProtectGetSerialNumberState ;
edit1.Text := Format(' Ret Code : %x', [code] ) ;
//////////////////////////////////////////////////////////////////////////////
//////////////检测License后,可在这里增加控制代码 ///////////////////////////
if code <> 0 then
if MessageDlg('检测License有问题,是否继续执行 ? 。', mtInformation, [mbYes, mbNo], 0) = mrNo then halt(2);
//////////////////////////////////////////////////////////////////////////////
i:= sizeof(licdata);
if VMProtectGetSerialNumberData( @licData , i ) then
begin
memo1.Lines[1] := memo1.Lines[1] + format('---- %x',[licData.nState]);
memo1.Lines[2] := memo1.Lines[2] + '----'+ licdata.wUserName ;
memo1.Lines[3] := memo1.Lines[3] + '----'+ licdata.wEMail ;
memo1.Lines[4] := memo1.Lines[4] + format('---- %d',[licData.dtExpire.wYear ])
+ format('-%d',[licData.dtExpire.bMonth ])+format('-%d',[licData.dtExpire.bDay ]);
memo1.Lines[5] := memo1.Lines[5] + format('--- %d',[licData.dtMaxbuild.wYear ])
+ format('-%d',[licData.dtMaxbuild.bMonth ])+format('-%d',[licData.dtMaxbuild.bDay ]);
memo1.Lines[6] := memo1.Lines[6] + format('---- %d',[licData.bRunningTime]);
memo1.Lines[7] := memo1.Lines[7] + format('---- %x',[licData.nUserDataLength]);
memo1.Lines[8] := memo1.Lines[8] + format('---- %x',[licData.bUserData[0]])+ format(' %x',[licData.bUserData[1]])
+ format(' %x',[licData.bUserData[2]])+ format(' %x',[licData.bUserData[3]]);
end;
end else
begin
MessageDlg(VMProtectDecryptStringA('Test.lic file not exist.'), mtError, [mbOK], 0);
halt(2);
end;
end;
第二步:
用VMProtect_LM.exe新建一个产品,保存.VMP 授权项目
第三步:
VMProtect.exe加密程序时,选择授权信息第二步生成的.VMP
第四步:
用VMProtect_LM.exe 创建合法用户、例子程序中所定义的授权文件 test.lic
最后“复制注册码”,用记事本保存为 Test.lic ,放在project.exe目录下即可。
备注:
1、有关license的 SDK 不多说了,看帮助吧。
2、要锁定机器,只要在新建授权时,选择“硬件码”,并输入用户发来的硬件ID即可。 TestVMP.rar (628.54 KB, 下载次数: 70)
3、分发。先导出密钥匙对,替换keygen中相应内容编译一下即可。
4、与WL的不同之处(NB老大指正):WL在主程序中就可以定义了是否锁定机器,license中只要设有机器码即锁定。VMP只能是在license中定义的,在硬件ID前打勾的才锁定。
编写源程序。在程序中使用有关license的SDK。下面的例子中定义license文件是 test.lic
例子主要代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var
i : Longword ;
F : textfile ;
pbuffer: array[0..$1000] of char;
code : Longword ;
licData : TVMProtectSerialNumberdata ;
begin
if fileexists('test.lic') then
begin
fillchar(licData,sizeof(licdata),0);
assignfile(F,'test.lic');
reset(f);
for i := 0 to $1000 do
if not eof(f) then read( f,pbuffer[ i ] ) else break;
closefile(f);
VMProtectSetSerialNumber(pbuffer) ;
code := VMProtectGetSerialNumberState ;
edit1.Text := Format(' Ret Code : %x', [code] ) ;
//////////////////////////////////////////////////////////////////////////////
//////////////检测License后,可在这里增加控制代码 ///////////////////////////
if code <> 0 then
if MessageDlg('检测License有问题,是否继续执行 ? 。', mtInformation, [mbYes, mbNo], 0) = mrNo then halt(2);
//////////////////////////////////////////////////////////////////////////////
i:= sizeof(licdata);
if VMProtectGetSerialNumberData( @licData , i ) then
begin
memo1.Lines[1] := memo1.Lines[1] + format('---- %x',[licData.nState]);
memo1.Lines[2] := memo1.Lines[2] + '----'+ licdata.wUserName ;
memo1.Lines[3] := memo1.Lines[3] + '----'+ licdata.wEMail ;
memo1.Lines[4] := memo1.Lines[4] + format('---- %d',[licData.dtExpire.wYear ])
+ format('-%d',[licData.dtExpire.bMonth ])+format('-%d',[licData.dtExpire.bDay ]);
memo1.Lines[5] := memo1.Lines[5] + format('--- %d',[licData.dtMaxbuild.wYear ])
+ format('-%d',[licData.dtMaxbuild.bMonth ])+format('-%d',[licData.dtMaxbuild.bDay ]);
memo1.Lines[6] := memo1.Lines[6] + format('---- %d',[licData.bRunningTime]);
memo1.Lines[7] := memo1.Lines[7] + format('---- %x',[licData.nUserDataLength]);
memo1.Lines[8] := memo1.Lines[8] + format('---- %x',[licData.bUserData[0]])+ format(' %x',[licData.bUserData[1]])
+ format(' %x',[licData.bUserData[2]])+ format(' %x',[licData.bUserData[3]]);
end;
end else
begin
MessageDlg(VMProtectDecryptStringA('Test.lic file not exist.'), mtError, [mbOK], 0);
halt(2);
end;
end;
第二步:
用VMProtect_LM.exe新建一个产品,保存.VMP 授权项目
第三步:
VMProtect.exe加密程序时,选择授权信息第二步生成的.VMP
第四步:
用VMProtect_LM.exe 创建合法用户、例子程序中所定义的授权文件 test.lic
最后“复制注册码”,用记事本保存为 Test.lic ,放在project.exe目录下即可。
备注:
1、有关license的 SDK 不多说了,看帮助吧。
2、要锁定机器,只要在新建授权时,选择“硬件码”,并输入用户发来的硬件ID即可。
3、分发。先导出密钥匙对,替换keygen中相应内容编译一下即可。
4、与WL的不同之处(NB老大指正):WL在主程序中就可以定义了是否锁定机器,license中只要设有机器码即锁定。VMP只能是在license中定义的,在硬件ID前打勾的才锁定。