本站资源来自互联网用户收集发布,仅供用于学习和交流。如有侵权之处,请联系站长并出示版权证明以便删除,敬请谅解!(邮箱:whctwlgzs@foxmail.com)

无忧技术吧

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告展示页面
查看: 1188|回复: 58

[讨论交流] 易语言vmp保护,各种保护壳易语言的sdk代码

  [复制链接]
admin (帅逼1)实名认证

积分信息:
无忧币:114361
交易币:2147478427
贡献:999999

我的勋章:

灌水之王突出贡献优秀版主荣誉管理论坛元老沙发王源码大师在线王终身成就机器王知识库土豪活跃会员最佳新人热心会员


发表于 4 天前 | 显示全部楼层 |阅读模式
<

马上注册,结交更多好友,享用更多功能,让你轻松玩转无忧吧。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
易语言vmp保护,各种保护壳易语言的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})## 标题:易语言VMP保护与各类保护壳SDK代码解析

### 一、背景概述

随着软件盗版行为的日益猖獗,如何有效保护易语言编写的程序成为开发者们关注的焦点。易语言作为一种高效且便捷的编程语言,广泛应用于各类软件开发中。然而,其开源特性也使得程序容易被逆向工程和破解。为了应对这一挑战,各种形式的保护措施应运而生,其中VMProtect(简称VMP)作为一种广泛使用的保护壳技术,通过加密和混淆代码来提高程序的安全性。本文将详细探讨如何使用易语言结合VMProtect进行程序保护,并介绍其他常见的保护壳及其SDK代码使用方法。

### 二、VMP保护原理与实现

#### 1. VMP保护原理

VMProtect是一种强大的代码虚拟化工具,通过动态分析程序行为,对关键代码段进行加密和混淆处理,从而阻止反编译和调试攻击。其主要工作原理包括以下几个方面:

- **代码加密**:VMP会对程序中的特定代码段进行加密,使得逆向工程师无法直接读取源代码。
- **虚拟机模拟**:VMP在内存中创建一个虚拟机环境运行被保护的代码,使得传统的调试工具难以跟踪程序的实际执行路径。
- **防调试技术**:通过检测调试器的存在,一旦发现调试行为,VMP会采取相应的反制措施,如终止进程或改变代码逻辑。

#### 2. 易语言结合VMP的实现步骤

- **引入VMP模块**:在易语言项目中引用VMProtect的EC模块,确保开发环境中包含必要的库文件。
- **标记保护代码**:在需要保护的代码段前后添加特定的开始和结束标记,这些标记由VMP识别并进行加密处理。
- **编译并加密**:使用VMP工具对源码进行编译和加密处理,生成带有保护壳的可执行文件。
- **发布程序**:将加密后的程序分发给用户,由于代码已经被加密和混淆,逆向工程的难度大大增加。

#### 3. 示例代码

  1. e
  2. .版本 2
  3. .支持库 shell.ec
  4. .支持库 vmp_ec.ec

  5. .子程序 __启动窗口_创建完毕
  6.     // 标记保护代码开始
  7.     标记开始
  8.     // 原始代码
  9.     信息框 (“你好, 世界!”)
  10.     标记结束
复制代码


### 三、常见保护壳及SDK代码解析

#### 1. ArcaPE保护壳

ArcaPE是一款功能强大的加壳工具,适用于多种编程语言,包括易语言。其主要特点在于高效的加密和压缩算法,以及灵活的配置选项。ArcaPE提供了丰富的SDK接口,开发者可以通过调用这些接口实现自定义的保护功能。

**示例代码**:

  1. e
  2. .版本 2
  3. .支持库 arcape.ec

  4. .子程序 __启动窗口_创建完毕
  5.     // 初始化ArcaPE库
  6.     初始化ArcaPE()
  7.     // 设置保护选项
  8.     设置保护选项 (0x04, 0x01) // 启用加密和压缩
  9.     // 加载易语言程序集
  10.     加载易程序集 (“example.e”)
  11.     // 加壳并保存结果
  12.     加壳并保存 (“protected_example.exe”)
复制代码


#### 2. MVA保护壳

MVA(MZic Virtualization Abstraction)保护壳是一款基于虚拟机技术的代码保护工具,能够有效防止逆向工程和修改。MVA提供了详细的SDK文档和示例代码,方便开发者集成到易语言项目中。

**示例代码**:

  1. e
  2. .版本 2
  3. .支持库 mvacs.ec

  4. .子程序 __启动窗口_创建完毕
  5.     // 初始化MVA库
  6.     初始化MVA ()
  7.     // 加载易语言程序集
  8.     加载易程序集 (“example.e”)
  9.     // 设置保护选项
  10.     设置保护选项 (启用虚拟机, 启用调试检测)
  11.     // 加壳并保存结果
  12.     加壳并保存 (“protected_example.exe”)
复制代码


#### 3. Themida保护壳

Themida是一款广受欢迎的应用程序保护工具,支持多种编程语言和平台。Themida提供了详细的SDK指南和示例代码,帮助开发者轻松实现程序保护。

**示例代码**:

  1. e
  2. .版本 2
  3. .支持库 themida.ec

  4. .子程序 __启动窗口_创建完毕
  5.     // 初始化Themida库
  6.     初始化Themida ()
  7.     // 加载易语言程序集
  8.     加载易程序集 (“example.e”)
  9.     // 设置保护选项
  10.     设置保护选项 (启用防篡改, 启用调试检测)
  11.     // 加壳并保存结果
  12.     加壳并保存 (“protected_example.exe”)
复制代码


### 四、总结与展望

本文详细介绍了易语言结合VMProtect及其他常见保护壳进行程序保护的方法和原理。通过合理使用这些保护壳工具,开发者可以显著提高程序的安全性,防止逆向工程和恶意篡改。未来,随着技术的发展和安全需求的不断提升,程序保护技术也将不断演进和完善。建议开发者保持关注行业动态和技术趋势,积极应用最新的保护技术和方法以确保程序的安全性和稳定性。


无忧技术吧-免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.92wuyou.cn无关。
2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
4、注册会员通过任何手段和方法针对论坛进行破坏,我们有权对其行为作出处理。并保留进一步追究其责任的权利。
5、无忧技术吧(www.92wuyou.cn)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。无忧技术吧不承担任何因为技术滥用所产生的连带责任。无忧技术吧内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或QQ与我们联系处理。
6、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:whctwlgzs@foxmail.com),本站将立即改正。
联系方式:
站长邮箱:whctwlgzs@foxmail.com
站长QQ:4040068
无忧技术吧www.92wuyou.cn
笔底春风 (帅逼1020)

积分信息:
无忧币:48
交易币:5
贡献:0

发表于 4 天前 | 显示全部楼层
66666666666666666
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

画景蕴情思 (帅逼1140)

积分信息:
无忧币:51
交易币:3
贡献:0

发表于 4 天前 | 显示全部楼层
支持一下
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

妙手逸逸画 (帅逼1204)

积分信息:
无忧币:43
交易币:5
贡献:0

发表于 4 天前 | 显示全部楼层
我是个凑数的
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

逸墨逸逸香 (帅逼1190)

积分信息:
无忧币:43
交易币:5
贡献:0

发表于 4 天前 | 显示全部楼层
相当不错,感谢无私分享精神!
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

青藤绕树 (帅逼990)

积分信息:
无忧币:38
交易币:2
贡献:0

发表于 4 天前 | 显示全部楼层
写的真的很不错
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

墨香染指 (帅逼1064)

积分信息:
无忧币:40
交易币:4
贡献:0

发表于 4 天前 | 显示全部楼层
不知该说些什么。。。。。。就是谢谢
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

雨润芭蕉 (帅逼1011)

积分信息:
无忧币:44
交易币:3
贡献:0

发表于 4 天前 | 显示全部楼层
学习了,谢谢分享、、、
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

棋道通幽 (帅逼1043)

积分信息:
无忧币:35
交易币:7
贡献:0

发表于 4 天前 | 显示全部楼层
学习了,不错,讲的太有道理了
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

诗心共月闲 (帅逼1143)

积分信息:
无忧币:41
交易币:2
贡献:0

发表于 4 天前 | 显示全部楼层
感谢分享
无忧技术吧www.92wuyou.cn
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐 关闭


欢迎来到无忧论坛!

欢迎来到无忧论坛!请大家遵守国家法律法规 无忧论坛关注编程安全和移动安全、程序调试与病毒分析的前沿领域,平台本身资源丰富,作为一个资源平台,为程序员及广大编程爱好者提供了一个氛围良好的交流与合作空间。


查看

热烈推荐
关闭

关于烛光| 支付宝站| 广告服务| 法律声明| 隐私保护| 联系我们| Archiver| | 帮助中心

鄂公网安备42011502001700号

工业和信息化部备案:鄂ICP备2024050280号-2 广告服务/联系QQ: 4040068 投诉受理QQ: 4040068 

技术支持:Discuz!  Copyright © 2009 - 2010 联系邮箱:whctwlgzs@foxmail.com 版权所有 无忧技术吧

GMT+8, 2025-9-6 11:14 , Processed in 0.268444 second(s), 88 queries .

请输入你要搜索的关键字关键字: 百度 google 一搜 搜狐