易语言保护壳的sdk代码

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标记结尾

适用于ZProtect V1.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, })' 标记结束处

Shielden 2.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 #elif defined(__LCC__)
2 /* Provided by Rubem Pechansky, 26Feb2003 */
3 #define SECUREBEGIN _asm(".byte 0xEB,0x03,0xD6,0xD6,0x00");
4 #define SECUREEND _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
5 #define SECUREBEGIN_A _asm(".byte 0xEB,0x03,0xD6,0xD6,0x01");
6 #define SECUREEND_A _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
7 #define SECUREBEGIN_B _asm(".byte 0xEB,0x03,0xD6,0xD6,0x02");
8 #define SECUREEND_B _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
9 #define SECUREBEGIN_C _asm(".byte 0xEB,0x03,0xD6,0xD6,0x03");
10 #define SECUREEND_C _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
11 #define SECUREBEGIN_D _asm(".byte 0xEB,0x03,0xD6,0xD6,0x04");
12 #define SECUREEND_D _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
13 #define SECUREBEGIN_E _asm(".byte 0xEB,0x03,0xD6,0xD6,0x05");
14 #define SECUREEND_E _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
15 #define SECUREBEGIN_F _asm(".byte 0xEB,0x03,0xD6,0xD6,0x06");
16 #define SECUREEND_F _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
17 #define SECUREBEGIN_G _asm(".byte 0xEB,0x03,0xD6,0xD6,0x07");
18 #define SECUREEND_G _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
19 #define SECUREBEGIN_H _asm(".byte 0xEB,0x03,0xD6,0xD6,0x08");
20 #define SECUREEND_H _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
21 #define SECUREBEGIN_I _asm(".byte 0xEB,0x03,0xD6,0xD6,0x09");
22 #define SECUREEND_I _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
23 #define SECUREBEGIN_J _asm(".byte 0xEB,0x03,0xD6,0xD6,0x0A");
24 #define SECUREEND_J _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
25 #define SECUREBEGIN_K _asm(".byte 0xEB,0x03,0xD6,0xD6,0x0B");
26 #define SECUREEND_K _asm(".byte 0xEB,0x03,0xD6,0xD6,0xFF");
27 #define NANOBEGIN _asm(".byte 0xEB,0x03,0xD6,0xD7,0x01");
28 #define NANOEND _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}) 。

(0)

相关推荐

  • 实例讲述易语言拦截窗口消息

    易语言等可视化编程已经将视窗消息封装为对象的属性.方法和事件.当我们在窗口中按下鼠标左键,欲出现信息"你点击了窗体",在易语言中是这样编写的: 子程序:__启动窗口_鼠标左键被按下 返回值类型:逻辑型 参数:横向位置 数据类型:整数型 参数:纵向位置 数据类型:整数型 参数:功能键状态 数据类型:整数型 信息框 ("你点击了窗体", 0, ) 但是如果不用"__启动窗口_鼠标左键被按下"事件能否达到这样的结果?由于对象的事件也只不过是视窗消息的封

  • 易语言用窗口消息实现无边框调整和窗口的移动方法

    首先你可以添加4个图片框作为窗口的标题栏和边框 窗口的四周边框和标题栏可以用图片框来捏造 如果你不想别人看见图片框的话可以把图片框的背景颜色弄得和窗口底色一样 移动窗口,你可以用: _启动窗口.发送信息 (161, 2, 0) 改变窗口大小,你可以用: _启动窗口.发送信息 (274, 61441, 0) ' 可以调整窗口左边的边框 _启动窗口.发送信息 (274, 61442, 0) ' 可以调整窗口右边的边框 _启动窗口.发送信息 (274, 61443, 0) ' 可以调整窗口上边的边框

  • 易语言调用MS SQL SERVER数据库方法

    Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output参数返回一个或多个值,返回一个记录集(recordset).无论哪一种情况,无论输入输出参数多复杂的存储过程,都可以在易语言中正确调用,准确的传入参数,并获取正确的输出数据.下面我(liigo)分多种情况介绍在易语言中调用MS SQL SERVER数据库存储过程的详细方法,使用数据库操作支持库(eD

  • 详解易语言DLL以及API函数

    易语言 DLL 详细解释 使用易语言多媒体教程中的例子. .版本 2 //DLL文件 ,需要插入一个窗体.标签.按钮 .程序集 窗口程序集1 .子程序 _按钮1_被单击 窗口1.销毁 () .子程序 自创信息框, , 公开 .参数 标题, 文本型 .参数 内容, 文本型 载入 (窗口1, , 假) // 载入(),必须放在前面,放在后两句的后面则提示窗口无法载入 窗口1.标题 = 标题 窗口1.标签1.标题 = 内容 //编译为自创信息框.dll //当你想调用前面的dll时,必须先插入dll命

  • 讲解易语言句柄的概念

    以下我们给大家详细讲述了易语言中的句柄的概念和含义 这是操作系统里的一个概念,句柄是WONDOWS用来标识被应用程序所建立或使用的对象的唯一整数,WINDOWS使用各种各样的句柄标识诸如应用程序实例,窗口,控制,位图,GDI对象等等.WINDOWS句柄有点象C语言中的文件句柄. 从上面的定义中的我们可以看到,句柄是一个标识符,是拿来标识对象或者项目的,它就象我们的姓名一样,每个人都会有一个,不同的人的姓名不一样,但是,也可能有一个名字和你一样的人.从数据类型上来看它只是一个16位的无符号整数.应

  • 易语言保护壳的sdk代码

    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 是代码清除标记,允许您选择一部分代码在运行后从内存中删除:使用此标记的目的是

  • 易语言删除系统临时文件代码实操

    以下我们给大家分享的是易语言删除系统临时文件的一些实例代码,以及逻辑关系,来看下: JY模块里的 目录_取特定目录 () 可以取到IE临时文件的文件夹 删除临时文件 (#接口常量.系统临时文件) 删除临时文件 (#接口常量.IE临时文件) 删除临时文件 (#接口常量.回收站) 删除临时文件 (#接口常量.存根文件) 这一条可以清除网站存根文件,配合系统临时和IE临时彻底清除 清除历史记录 (#接口常量.浏览网址历史记录) 清除历史记录 (#接口常量.浏览器历史地址记录) 清除历史记录 (#接口常

  • 易语言结束程序的代码详解

    易语言怎么结束程序呢?这个是我们要考虑的,请看下面. 非无私奉献,拒绝看经验不回复,学懂了记得按照下面做: 具体操作请看图. 1.易语言新建一个windows窗口 2.我们需要添加一个按钮 按住右边框内图标 3.然后再窗口上 就可以拉出来一个按钮 4.点击按钮 进入按钮代码编辑区 5.这里我们输入函数 结束()就可以了很简单 6.我们运行看看窗口 然后点击按钮 就可以关闭当前程序了

  • 易语言简单的安装代码总结

    新建一个窗口程序,然后添加一个时钟,再添加两个按钮(名称别去修改,就这样) 首先复制粘贴DLL部分内容: .版本 2 .DLL命令 CallWindowProc, 整数型, "user32.dll", "CallWindowProcA", , 呼叫窗口函数地址 .参数 前一窗口函数地址, 字节集 .参数 窗口句柄, 整数型 .参数 消息值, 整数型 .参数 附加参数1, 整数型 .参数 附加参数2, 整数型 .DLL命令 lstrcpyn, 整数型, "k

  • 易语言日志记录类代码详解

    以下是关于用易语言编写的记录日志类的相关源码内容 .版本 2 .子程序 写日志记录 .参数 写日志_日志文件名, 文本型 .参数 写日志_日志文本, 文本型 .局部变量 文件句柄, 整数型 文件句柄 = 打开文件 (写日志_日志文件名, , ) .如果 (文件句柄 = 0)     写到文件 (写日志_日志文件名, {  }) .否则 .如果结束 文件句柄 = 打开文件 (写日志_日志文件名, , ) .如果 (文件句柄 > 0)     插入文本行 (文件句柄, 到文本 (取现行时间 ())

  • 易语言清空回收站的代码

    DLL命令代码 .版本 2 .DLL命令 清空回收站, 整数型, "shell32.dll", "SHEmptyRecycleBinA" .参数 hwnd, 整数型 .参数 lppath, 整数型 .参数 flag, 整数型 清空回收站代码 .版本 2 .程序集 窗口程序集1 .子程序 _清空按钮_被单击 .局部变量 风格, 整数型 .如果真 (显示清空选择框.选中) 风格 = 0 .如果真结束 .如果真 (显示清空选择框.选中 = 假) 风格 = 7 .如果真结束

  • 易语言文本排列的代码实例

    文本排列代码 .版本 2 .程序集 窗口程序集1 .子程序 _排列按钮_被单击 .局部变量 计次 .局部变量 重复文本 重复文本 = 4 顶部编辑框.内容 = 顶部编辑框.内容 + 取重复文本 (7, " ") + 取重复文本 (1, "*") + #换行符 顶部编辑框.内容 = 顶部编辑框.内容 + 取重复文本 (6, " ") + 取重复文本 (3, "*") + #换行符 顶部编辑框.内容 = 顶部编辑框.内容 + 取重

  • 易语言HOOKAPI钩子操作代码实例

    DLL代码 .版本 2 .DLL命令 修改虚拟保护, 整数型, "kernel32", "VirtualProtect", , 修改虚拟保护 .参数 lpAddress, 整数型 .参数 dwSize, 整数型 .参数 flNewProtect, 整数型 .参数 lpflOldProtect, 整数型, 传址 .DLL命令 取函数地址, 整数型, "kernel32", "GetProcAddress", , 返回函数地址 .

  • 易语言API热键监控实例

    在用易语言编写软件或者游戏辅助的时候,经常用到API热键监控这个功能,我们在下面分享给大家实例代码,直接复制可以测试下. AIP热键监控 .版本 2 .支持库 JY .子程序 监视热键2, 整数型, 公开, 成功返回热键ID,失败返回0. .参数 响应子程序, 子程序指针, , 热键被按下时要触发的子程序,该回调函数可有一个参数用来接收热键ID. .参数 键代码, 整数型, , 可以使用易语言中的键代码常量 .参数 功能键码, 整数型, 可空, 键码数值见常量,可多个相加成为组合键,留空或为0则

  • 易语言是主流编程语言吗?易语言是什么

    给大家详细介绍一下易语言 a.易语言感觉就是翻译成中文版的那些英语编译语言,易语言解决的问题是没有一点英文基础的编程初学者的入门问题,所以易语言的这个优势没有任何"入流"的机会 b.企业或者社会缺的看英文文档.论文的阅读能力的人 c.程序和英语,必须好玩才好玩下去 一.简介 易语言是一门以中文作为程序代码编程语言,其以"易"著称,创始人为吴涛.易语言早期版本的名字为E语言.其最早的版本的发布可追溯至2000年9月11日.创造易语言的初衷是进行用中文来编写程序的实践,

随机推荐