我想用VMProtect's Markers来标记包含应该受保护的字符串常量的代码块。Delphi 7 - VMProtect实现的一些错误
uses VMProtectSDK;
VMProtectBegin(MARKER_NAME);
...
VMProtectEnd;
// DELPHI FUNCTION EXAMPLE :
procedure TForm1.Button1Click(Sender: TObject);
begin
VMProtectBegin('Test marker');
if StrToIntDef(Edit1.Text, 0) mod 17=13 then
MessageDlg(VMProtectDecryptStringA('Correct password'), mtInformation, [mbOK], 0)
else
begin
MessageDlg(VMProtectDecryptStringA('Incorrect password'), mtError, [mbOK], 0);
Edit1.SetFocus;
end;
VMProtectEnd;
end;
我试图实现它,但我得到了一些错误:
[Error] Unit1.pas(xx): Unterminated string
[Error] Unit1.pas(xx): ')' expected but identifier 'Krypt1' found
[Error] Unit1.pas(xx): Unterminated string
[Error] Unit1.pas(xx): Missing operator or semicolon
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
如何解决这个问题呢?我可以问你教我如何编写正确的代码行(或示例)。
我在我的Delphi 7代码的实现:
procedure TForm1.IdMappedPortTCP1Execute(AThread: TIdMappedPortThread);
var Payload, Host, Header, Krypt1, Krypt2:String;
begin
VMProtectBegin
('
Krypt1 := EncryptString('website.com', 'pwd');
Krypt2 := EncryptString('website.net', 'pwd');
');
VMProtectEnd;
if (pos('CONNECT',athread.NetData)<>0) or (pos('HTTP',athread.NetData)<>0) then begin
if host.Text = 'Host' then begin
Payload := 'GET http://'+Krypt1+'/ HTTP/1.1'+#13#10;
Host := AddHeader(AThread.NetData,'Host: '+Krypt2+''#13#10);
AThread.NetData := Payload+Host;
end;
end;
end;
我希望得到任何帮助。
干杯, RZV
您提供的节目究竟是如何从Delphi代码调用,具有特定的代码示例的链接。 (这是两张图片之间的内容)很明显,你发布的代码是无效的Delphi代码(你不能像在这里完成的那样将两行源代码作为函数参数传递)。仔细阅读链接页面,并研究它提供的代码,这确实会加密嵌入的**字符串常量** - 它不会以您尝试使用它的方式加密**变量**,因为这些内容变量在编译时不知道.. – 2015-04-01 22:28:04
谢谢。那么,你能帮我写一个基于上述VMWare的delphi7函数来在我的代码中使用吗? – RzV 2015-04-02 00:42:45
你能解释一下VMWare是如何突然出现的。你能不能认识到你问过关于编译错误的问题?我希望你不要指望我们为你写程序。 – 2015-04-02 08:59:47