2024年4月15日发(作者:)
易语言最新防破解
以下内容来源于酷夫软件工作室
作者
:
1696043190
需要合作请联系
。
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})


发布评论