2024年4月15日发(作者:)

易语言最新防破解

以下内容来源于酷夫软件工作室

作者

QQ

1696043190

需要合作请联系

QQ

ZProtect

//Code_Confusion

是代码乱序加密标记,允许您选择一部分被乱序的代码

置入代码

({235,8,83,84,95,83,84,65,82,84})'

Code_Confusion

标记开始

置入代码

({235,8,83,84,95,83,84,69,78,68})'

Code_Confusion

标记结尾

//Code_Elimination

是代码清除标记,允许您选择一部分代码在运行后从内存

中删除;使用此标记的目的是为了防止破解者从内存中转储出完整的程序代码。

置入代码

({235,8,79,67,95,83,84,65,82,84})'

Code_Elimination

标记开始

置入代码

({235,8,79,67,95,79,67,69,78,68})'

Code_Elimination

标记结尾

//Decode_onExec

是动态解码标记,允许您选择一部分只在执行时才解密的代

码段;这部分代码仅在需要执行时才解码,执行前和执行后均处于加密状态

置入代码

({235,8,68,89,95,83,84,65,82,84})//Decode_onExec

标记开始

置入代码

({235,8,68,89,95,68,89,69,78,68})//Decode_onExec

标记结尾

//Decode_onReg

是注册解码标记,允许您选择一部分使用有效密钥才解密的

代码;如果注册密钥不正确,那么这部分代码将永远处于加密状态。通俗地讲,

这部分代码仅在注册版中执行

//

源代码中可以使用任意数量的

Decode_onReg

标记,但是这些代码段在执

行时会同时解密。注册解码标记主要用于激活未注册版中被限制的功能,使之注

册成为完整版。

置入代码

({235,8,82,68,95,83,84,65,82,84})//Decode_onReg

记开始

置入代码

({235,8,82,68,95,82,68,69,78,68})//Decode_onReg

记结尾

//Zprotect_VM

是虚拟机加密标记,允许您选择一部分代码放到虚拟机中运行;

虚拟机的指令系统是完全不同于现有的

x86

指令,可以有效阻止代码还原及分

置入代码

({235,8,86,77,95,83,84,65,82,84})//Zprotect_VM

标记

开始

置入代码

({235,8,86,77,95,86,77,69,78,68})//Zprotect_VM

标记

结尾

-----------

适用于

ZProtectV1.4.9.0

版本

---------

VMProtect.

易的

SDK

置入代码

({235,16,86,77,80,114,111,116,101,99,116,32,98,

101,103,105,110,0})'VMP

保护开始标志

'

关键代码

置入代码

({235,14,86,77,80,114,111,116,101,99,116,32,101,

110,100,0})'VMP

保护结束标志

Enigma

加密易语言的

SDK

置入代码

({235,10,69,67,82,79,78,69,88,69,67,66})'

标记

开始处

'

关键代码

置入代码

({235,10,69,67,82,79,78,69,88,69,67,69})'

标记

结束处

NoobyProtect

加密易语言的

SDK

置入代码

({235,6,78,80,66,69,71,78})'

标记开始处

'

关键代码

置入代码

({235,6,78,80,69,78,68,80})'

标记结束处

穿山甲调用功能型加密易语言

SDK

DEMO

置入代码

({235,3,214,215,1})'

标记开始处

'

关键代码

置入代码

(

{235,3,214,215,0})'

标记结束处

ASP

加密易语言

SDK

置入代码

({235,4,235,5,25,1,233,37,0})'

标记开始处

'

关键代码

置入代码

({235,4,235,5,41,1,233,133,0,})'

标记结束处

Shielden2.0.1.0

({235,7,83,69,66,69,71,78,0})'

置入代码

SE_PROTECT_START

'

关键代码

置入代码

({235,7,83,69,69,78,68,80,0})'SE_PROTECT_END

'

置入代码

({235,7,83,69,66,69,71,78,77})

SE_PROTECT_START_MUTATION

关键代码

置入代码

({235,7,83,69,69,78,68,80,0})'SE_PROTECT_END

'

置入代码

({235,7,83,69,66,69,71,78,85})

SE_PROTECT_START_ULTRA

关键代码

置入代码

({235,7,83,69,69,78,68,80,0})'SE_PROTECT_END

置入代码

({235,7,83,69,66,69,71,78,86})'

'

关键代码

置入代码

({235,7,83,69,69,78,68,80,0})'SE_PROTECT_END

易语言

SDK

转换方法↓

随着

E5.0

静态编译对标准

PE

格式的支持,在

E

程序中引入加密壳

SDK

提升软

件保护质量已经成为现实。

加密壳

SDK

大体可划分为两类,一类是功能型

SDK

,一类是保护型

SDK

一、功能性

SDK

功能性

SDK

用来处理序列号验证、授权时间验证等功能性操作。这类

SDK

有直

接应用的各种函数在壳里提供,如

WL

;也有需要引入外部

DLL

的,如穿山甲。

对于无输出表的

DLL

,使用引入外部

SDK

,我们需要载入

DLL

,寻址

SDK

中的

函数,通过

E

里边的调用子程序

()

命令可以很方便的对

SDK

函数完成传递参数

获取返回值的操作,完事后把

DLL

一卸载就搞定了。

对于有输出表的

DLL

,使用

E

DLL

命令进行调用就

OK

了。

已经会调用

DLL

的朋友,对功能性

SDK

的操作可以说是轻松驾驭的啦,看一下

壳具体的

API

手册就

OK

二、加密型

SDK

通常加密型

SDK

于壳化挂钩,加密壳在软件中发觉特定的

SDK

标记后,将采用

针对性方法对这一段代码进行针对性处理提高特定代码段的安全性。这种标记自

然就是成对定义的汇编代码!

在易里边我们可以使用置入代码()命令轻松调用汇编代码。具体到加密壳使用

这块,我们按照如下方法做。

打开加密壳自带的

SDK

,找一门自己可以读懂的语言

SDK

头文件看一下。例如

下面这一段

LCC

的头文件。

以下内容为程序代码

:

1#elifdefined(__LCC__)

2/*ProvidedbyRubemPechansky,26Feb2003*/

3#defineSECUREBEGIN_asm(".byte

0xEB,0x03,0xD6,0xD6,0x00");

4#defineSECUREEND_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

5#defineSECUREBEGIN_A_asm(".byte

0xEB,0x03,0xD6,0xD6,0x01");

6#defineSECUREEND_A_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

7#defineSECUREBEGIN_B_asm(".byte

0xEB,0x03,0xD6,0xD6,0x02");

8#defineSECUREEND_B_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

9#defineSECUREBEGIN_C_asm(".byte

0xEB,0x03,0xD6,0xD6,0x03");

10#defineSECUREEND_C_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

11#defineSECUREBEGIN_D_

asm(".byte

0xEB,0x03,0xD6,0xD6,0x04");

12#defineSECUREEND_D_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

13#defineSECUREBEGIN_E_asm(".byte

0xEB,0x03,0xD6,0xD6,0x05");

14#defineSECUREEND_E_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

15#defineSECUREBEGIN_F_asm(".byte

0xEB,0x03,0xD6,0xD6,0x06");

16#defineSECUREEND_F_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

17#defineSECUREBEGIN_G_asm(".byte

0xEB,0x03,0xD6,0xD6,0x07");

18#defineSECUREEND_G_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

19#defineSECUREBEGIN_H_asm(".byte

0xEB,0x03,0xD6,0xD6,0x08");

20#defineSECUREEND_H_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

21#defineSECUREBEGIN_I_asm(".byte

0xEB,0x03,0xD6,0xD6,0x09");

22#defineSECUREEND_I_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

23#defineSECUREBEGIN_J_asm(".byte

0xEB,0x03,0xD6,0xD6,0x0A");

24#defineSECUREEND_J_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

25#defineSECUREBEGIN_K_asm(".byte

0xEB,0x03,0xD6,0xD6,0x0B");

26#defineSECUREEND_K_asm(".byte

0xEB,0x03,0xD6,0xD6,0xFF");

27#defineNANOBEGIN_asm(".byte

0xEB,0x03,0xD6,0xD7,0x01");

28#defineNANOEND_asm(".byte

0xEB,0x03,0xD6,0xD7,0x00");

用最后两句做解释,

NANOBEGIN

NANOEND

C

语言的

CC

代码段标记,

被这两个标记包住的代码段,加密壳才会对其进行

CC

保护处理。

NANOBEGIN

用汇编代码表示为

0xEB,0x03,0xD6,0xD7,0x01

,他这句是

C

16

进制表

示形式,在

E

里汇编语句是采用

10

进制表示的。也就是我们要翻译下这句代码。

0xEB=235

0x03=3

0xD6=214

0xD7=215

0x01=1

那么

NANOBEGIN

E

语言里表现形式就是置入代码

({235,3,214,215,1})