【推荐】加密软件VMProtect入门教程

现如今不少软件作者为选择一款合适的加密软件而困惑。建议作者不要太依赖壳的保护,大多数壳是可以被攻破的,还是在自身保护上下些功夫。选择壳的时候,更多的时候考虑其兼容性。

现如今不少软件作者为选择一款合适的加密软件而困惑。建议作者不要太依赖壳的保护,大多数壳是可以被攻破的,还是在自身保护上下些功夫。选择壳的时候,更多的时候考虑其兼容性。

现在壳的发展一个趋势就是虚拟机保护,利用虚拟机保护后,能大大提高强度,因此建议尽可能使用此类技术保护软件。

如Themida ,WinLicense,EXECryptor等带有虚拟机保护功能,因此得用好其SDK。

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

关键代码自己定位

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

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

注意事项:

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

用SDK标记代码 

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

Delphi 中的标记模式:

asmdb $EB,$10,'VMProtect begin',0 //标记开始处.end;//想保护的程序代码asmdb $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}

下载最新版VMProtect DEMO>>

【推荐】加密软件VMProtect入门教程

标签:加壳加密/解密

来源:慧都网

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2017年6月2日
下一篇 2017年6月2日

相关推荐

发表回复

登录后才能评论