VMProtect是目前最强大的虚拟机保护软件之一,适合Visual Basic(native),Visual C,Delphi,ASM等本地编译的目标程序,支持EXE,DLL,SYS。支持Windows各系统,具备很好的兼容性和稳定性。
php
下载地址html
VMProtect 1.22.3之前版本都没功能限制,更高版本须要注册才能得到。强度方面,低版本都有不错的表现,可使用。
VMProtect 0.71
VMProtect 1.02
VMProtect 1.03
VMProtect 1.05
VMProtect 1.07
VMProtect 1.08
VMProtect 1.09
VMProtect 1.11
VMProtect 1.20
VMProtect 1.21
VMProtect 1.22.3
编程
购买方法多线程
若是要使用新功能,在强度,稳定性和兼容性有更高的要求,如多线程支持的更好等,能够购买高版本。
1.首先登录VMProtect官方主页,进入购买连接http://www.vmprotect.ru/buy.php
2.若是没有信用卡,能够选用E-GOLD,而后E-GOLD直接汇款给VMProtect,数小时后,VMProtect官方会将key及正式版寄给你。
E-GOLD能够到淘宝网购买。有关E-GOLD请参考:http://www.e-gold.org.cn
你也能够经过代理或西联来购买。
注意:VMProtect注册协议是不容许公开分析他们的目标程序的,用VMProtect保护的程序带有水印,所以将VMProtect注册版保护的程序公开给你们研究是要冒风险的,极可能key会被BAN。另外,购买key的朋友若是公开散发,也可能致使VMProtect会将中国的IP封掉(之前己封过一次)。VMProtect目前己作的很稳定和强大,但愿他能发展的更好。
函数
使用方法工具
1.指定代码
必须告诉VMProtect你要加密的代码具体地址,这对使用者有必定的要求,至少要懂一些跟踪技术,能够用调试器,如OllyDbg跟踪到程序须要保护的地址,而后添加地址到VMProtect。
在这以一个记事本程序为例来演示一下使用方法。
运行VMProtect后,打开NOTEPAD.EXE文件。单击Dump标签,输入要加密的起始地址,光标来到要加密代码起始地址后,点击菜单“project/new procedure”,会出现一个新的项目,以下图。
2.用SDK标记代码
用调试器得到地址的操做过程比较专业,不太方便。VMProtect v1.2以上支持SDK了,能够编程时插入一个标记,而后在加密时,VMProtect会认出这些标记,并在有标记的地方进行保护。在程序源码中,用这对标签将一些核心代码包含,编译成EXE文件。而后用VMProtect打开EXE,单击“Project”菜单下的“New procedure”或者单击工具栏中的“New procedure”按钮,在弹出的添加地址窗口中会自动将SDK定义代码的地址填上。而后在VMProtect的“Options”窗口中设置相应的选项,最后单击工具栏中的“Compilation (F9)”按钮,即可对目标软件进行保护。
Delphi 中的标记模式
加密
代码:spa
asm db $EB,$10,'VMProtect begin',0 //标记开始处. end; //想保护的程序代码 asm db $EB,$0E,'VMProtect end',0 //标记结束处. end;
VC的VMProtect的宏 :
线程
代码:代理
#define VMBEGIN __asm //标记开始处. { _emit 0xEB _emit 0x10 _emit 0x56 _emit 0x4D _emit 0x50 _emit 0x72 _emit 0x6F _emit 0x74 _emit 0x65 _emit 0x63 _emit 0x74 _emit 0x20 _emit 0x62 _emit 0x65 _emit 0x67 _emit 0x69 _emit 0x6E _emit 0x00 } //想保护的程序代码 #define VMEND __asm //标记结束处. { _emit 0xEB _emit 0x0E _emit 0x56 _emit 0x4D _emit 0x50 _emit 0x72 _emit 0x6F _emit 0x74 _emit 0x65 _emit 0x63 _emit 0x74 _emit 0x20 _emit 0x65 _emit 0x6E _emit 0x64 _emit 0x00
3.用map文件
VMProtect支持Map文件来定位函数,设置编译器,让其生成Map文件。将目标文件和Map文件放在一块儿(文件名要相同),用VMProtect打开文件后,执行菜单“New procedure”时可以列出不少内部函数,这时只须要选择想加密的函数进行后续处理了。
VMProtect是当前一款很强的虚拟机保护软件,通过VMProtect处理的软件,能大大提升破解者的分析成本,是目前一种比较理想的保护方式。VMProtect关键是用好,必定要将程序关键代码进行处理,必要时用OllyDBG检查一下被处理的代码。
另外,经虚拟机处理代码效率会下降,所以一些对效率要求比较高的代码就不适合用VMProtect进行处理。
注:
1.本文章从http://www.pediy.com/bbshtml/bbs8/pediy8-835.htm中整理而来。