博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
加密软件VMProtect入门教程
阅读量:7014 次
发布时间:2019-06-28

本文共 1588 字,大约阅读时间需要 5 分钟。

hot3.png

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

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

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

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

关键代码自己定位

VMProtect并不像其他加壳软件一样容易操作,必须告诉VMProtect你要加密的代码具体地址,这个对使用者有一定的要求,至少要有些解密基础。

在这以一个记事本程序为例来演示一下使用方法。
运行后,打开NOTEPAD.EXE文件。单击Dump标签,输入要加密的起始地址,光标来到要加密代码起始地址后,点击菜单“project/newprocedure”,会出现一个新的项目。

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

注意事项:

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

用SDK标记代码 

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

Delphi 中的标记模式:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

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

}

转载于:https://my.oschina.net/u/3432667/blog/1154451

你可能感兴趣的文章
帮助函数
查看>>
自己动手写Android插件化框架,让老板对你刮目相看
查看>>
[转]Object.keys()和for in的排序问题
查看>>
Dedecms判断当前栏目下是否有子栏目
查看>>
常见的加密和解密算法—AES
查看>>
HTTPS那些事(二)SSL证书(转载)
查看>>
【PIC学习第2例】PIC16F877A LED闪烁
查看>>
Orchard CMS前台页面为什么没有Edit链接?
查看>>
判断URL文件是不是在于在。
查看>>
GNU C中的零长度数组(转载)
查看>>
SQL2005中时,Diagrams的问题
查看>>
[转]软件架构的一致性
查看>>
拨云见日,任重道远 ——第六届云计算大会感悟
查看>>
PID控制器的应用:控制网络爬虫抓取速度
查看>>
cad中关于点样式点的绘制
查看>>
学习计划--20160424
查看>>
CentOS VMware 下SSH配置方法详解
查看>>
PHP错误级别 error_reporting() 函数详解
查看>>
jdk环境变量配置
查看>>
为网卡配置多个IP地址(windows)
查看>>