VMProtect怎么用_VMProtect使用教程

不少软件作者为选择一款合适的加密软件而困惑。建议作者不要太依赖壳的保护,大多数壳是可以被攻破的,还是在自身保护上下些功夫。选择壳的时候,更多的时候考虑其兼容性。
目前流行的一些壳可以参考一下这里:http://www.pediy.com/tools/packers.htm

现在壳的发展一个趋势就是虚拟机保护,利用虚拟机保护后,能大大提高强度,因此建议尽可能使用此类技术保护软件。
如Themida ,WinLicense,EXECryptor等带有虚拟机保护功能,因此得用好其SDK。

另外,VMProtect是一款纯虚拟机保护软件,效果很好,但也有缺点,就是会影响程序速度,因此在一些对速度要求很高的场合就不适合用了。VMProtect 1.22.3之前是免费版,可以支持EXE,DLL等文件。更高版本需要购买,其支持驱动的保护。现在流行的做法,先用VMProtect将你的核心代码处理一下,再选用一款兼容性好的壳保护。


1.关键代码自己定位

VMProtect并不像其他加壳软件一样容易操作,必须告诉VMProtect你要加密的代码具体地址,这个对使用者有一定的要求,至少要有些解密基础。
在这以一个记事本程序为例来演示一下使用方法。
运行VMProtect后,打开NOTEPAD.EXE文件。单击Dump标签,输入要加密的起始地址,光标来到要加密代码起始地址后,点击菜单“project/newprocedure”,会出现一个新的项目





需要处理其他地址时,请依次操作。



注意事项:
1.用VMProtect处理,请多测试,如果不稳定,请调整被保护代码的范围。
2.VMProtect对双线程支持不是太好,请同一次仅处理一个线程内的代码

2.用SDK标记代码

VMProtect v1.2以上支持SDK了,可以编程时插入一个标记,然后在加密时,VMProtect会认出这些标记,并在有标记的地方进行保护。编译后,VMProtect打开生成的这个exe文件后,点击“Project”菜单下的“New procedure”,在弹出的对话框中有SDK中的地址。


Delphi 中的标记模式

引用:

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
}

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值