python 编译成exe vmp加密_加密软件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 中的标记模式:

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//标记开始处.

{

_emit0xEB

_emit0x10

_emit0x56

_emit0x4D

_emit0x50

_emit0x72

_emit0x6F

_emit0x74

_emit0x65

_emit0x63

_emit0x74

_emit0x20

_emit0x62

_emit0x65

_emit0x67

_emit0x69

_emit0x6E

_emit0x00

}

//想保护的程序代码

#define VMEND

__asm//标记结束处.

{

_emit0xEB

_emit0x0E

_emit0x56

_emit0x4D

_emit0x50

_emit0x72

_emit0x6F

_emit0x74

_emit0x65

_emit0x63

_emit0x74

_emit0x20

_emit0x65

_emit0x6E

_emit0x64

_emit0x00

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值