VMProtect SDK+ASProtect SDK保护
生活随笔
收集整理的這篇文章主要介紹了
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保護
工具:
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保护的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC C++ 获取外网IP地址
- 下一篇: CMap在用CString做key类型时