本文主要是介绍VMProtect SDK+ASProtect SDK保护,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
程序具体保护实例VMProtect SDK+ASProtect SDK保护
工具:
VMProtect 1.12
ASProtect 1.33[Cr]
相关工具可以到www.pediy.com下载到
具体保护例子:
简单的字符串判断例子, 附件下载
内部使用
VMProtect SDK将验证代码保护起来
外部使用ASProtect保护
具体实例看代码
关于使用VMProtect的保护代码的一点说明
想简单的确定自身保护位置可以使用两种方法
以Delphi为例子
1.
在工程编译选项中:
Project->Options->Linker
选项卡中的Map File选项中~将单选框选择Detailed
然后在VMProtect添加保护代码中会看到函数地址
2.就是直接使用SDK代码
asm //使用VMProtect的SDK
db $EB,$10,'VMProtect begin',0
end;
asm
db $EB,$0E,'VMProtect end',0
end;
//---the end---
VMProtect使用说明[俄文版]
http://www.polytech.ural.ru/vmprotect.htm
附件中有全部代码和SDK:
代码:
program Test; {$APPTYPE CONSOLE} usesWindows;function AGenKey:string; //数组动态生成免得别别人从内存中看出来 constAint : array[0..9] of Char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');Achr : array[0..25] of Char = ('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T','U', 'V', 'W', 'X', 'Y', 'Z'); begin{key=H8E8A4R8T}asm //使用VMProtect的SDKdb $EB,$10,'VMProtect begin',0end;Result := Concat(Achr[7],Aint[8],Achr[4],Aint[8],Achr[0],Aint[4],Achr[17],Aint[8],Achr[19]);asmdb $EB,$0E,'VMProtect end',0end; end;varStrSN:String; beginWriteln('//');Writeln('// VMProtect SDK+ASProtect SDK Example');Writeln('// Coded By:Anskya');Writeln('// Email:Anskya@Gmail.com');Writeln('// Web:Www.Anskya.Net');Writeln('//');Writeln('');Writeln('');Write('输入注册码:');Readln(StrSN);{$I reg_crypt_begin.inc} //使用ASProtect的SDKasm //使用VMProtect的SDKdb $EB,$10,'VMProtect begin',0end;if StrSN=AGenKey thenbeginWriteln('恭喜注册成功');end elsebeginWriteln('^_^注册失败!');end;asmdb $EB,$0E,'VMProtect end',0end;{$I reg_crypt_end.inc}Readln; end.
这篇关于VMProtect SDK+ASProtect SDK保护的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!