标题：Enigma Protector
Enigma Protector
这里的术语“保护”主要指两方面内容。首先，“先试用后购买”的共享软件保护方案（多数共享软件的发布方式）；其次，保护软件的机器代码不被分析和破解。可以看出，两种保护方式是不同的，但是是相关的，应用保护可以有效的保护软件开发者的经济利益和技术秘密。
Enigma Protector 的许可管理：
Enigma Protector 配有专业的许可管理工具：
注册管理器。用于存储并管理注册用户的授权信息。使用注册管理器，您可以很轻松的将用户的注册信息添加到内部数据库，并且可以创建/编辑这些记录。 
邮件管理器。通过数据库自动创建并发送 Email 给用户。例如，软件开发商通常需要将新版软件的更新信息发送给注册用户，使用 Enigma 邮件管理器，就可以轻松完成这项工作。 
Enigma Protector 拥有高级注册密钥生成方案：
舒适的密钥创建和验证界面。 您不必到处搜索如何为客户创建安全的注册密钥，Enigma Protector 可以帮助您轻松创建使用 RSA 512-bits 加密算法的注册密钥！ 
Enigma API - 特殊的应用程序接口函数。 Enigma API 是一组特殊的函数集，用于被保护的文件和 Enigma 装载器之间的通信，主要用来为保护的文件添加注册功能和控制试用参数。 
硬件锁定密钥。 此特性帮助您生成仅供某一特定计算机使用的注册密钥！该注册密钥具有硬件锁定功能，仅在您指定的计算机上生效。 
时间限制密钥。 如果您需要限制注册版程序的使用时间限制，只需要创建具有时间限制功能的注册密钥！ 
安全快捷的注册机制。无需使用源代码，即可快速为您的程序添加自定义的注册机制。 
Enigma Protector 拥有多种时间限制特性：
试用次数、天数、日期和运行时间限制。 共享软件最主要的特点是“先试用后购买”，客户需要评估软件的工作特性，所以我们在展示共享软件功能的同时需要给软件加上运行时间的限制。 
系统时钟控制。 此特性用来控制系统时钟的回拨，帮助您避免不诚实客户带来的损失。
Enigma Protector 加密特性：
Enigma Protector 拥有多种加密特性来保护您的软件免遭破解：
反调试器保护。 调试器是一种在程序运行过程中逆向代码的特殊工具，所有的逆向工程师都使用调试器来分析您软件的工作流程和保护方式。使用反调试器保护可以有效的防止程序运行时被调试器加载。 
校验和保护。 校验和是一种特殊数据，用来检查软件数据是否被修改。每一种破解（例如修改注册流程）都需要修改机器码，此时 Enigma Protector 就可以检测到原文件是否被修改，并提醒用户。Enigma Protector 不仅检查被保护文件的机器码，壳自身的机器码也同样会检测！ 
设置启动密码。 也许有时候您只希望某一特定的用户组使用保护后的文件，为文件设置启动密码就是最安全的方案。 
附加特性。 检测同时运行的进程数量、文件名称和磁盘类型。 
高级输入表保护。 没有人会知道您导入了哪些 API 函数。 
虚拟机保护。自主研发的虚拟机保护引擎，拥有高强度的加密保护特性；独有模拟运行功能，精确选择需要加密的函数。 
校验外部文件。如果您的软件发行包除主程序外还包括其它文件，您可以使用这个特性来校验那些外部文件是否被修改。 
检测运行中的进程。通过黑名单方式来检测禁止运行的文件或进程，可以通过文件名、窗口标题或类等方式，通常用于检测调试器、屏幕捕获工具、监视工具等。 
检测已安装的服务。 
检测 Windows 版本。 
检测虚拟机软件、虚拟系统。如果保护后的文件在虚拟机里 (VMWare, Virtual PC etc) 运行，会自动结束进程。 
文件封装（捆绑）。将您程序使用的 DLL 文件或其它数据文件封装进独立的 EXE 文件中，避免被第三方软件盗用。 
Enigma Protector 还可以帮助您为您的软件添加一些漂亮的东西，而您无需添加任何代码：
启动画面（闪屏）。 为程序添加启动画面，可以在程序启动时显示您指定的图片。
软件介绍
一般而言，软件保护机制都是基于“信封”原理，软件的所有区段（代码段、数据段、输入表和资源） 被封装在保护器内，保护代码添加在文件尾部。软件运行时，保护代码首先取得控制权，并检查文件的完整性、是否有调试器、注册密匙核试验版本限制等内容，然后解密程序数据，初始化应用程序（处理输入表和重定位表）并将控制权交还给应有程序。不同于其它保护方案，Enigma 应用 API（应用程序接口）与被保护程序紧密的结合在一起，这极大地增强了破解难度。
Enigma Protector 拥有多种时间限制特性： 
试用次数、天数、日期和运行时间限制：共享软件最主要的特点是“先试用后购买”，客户需要评估软件的工作特性，所以我们在展示共享软件功能的同时需要给软件加上运行时间的限制。
系统时钟控制：此特性用来控制系统时钟的回拨，帮助您避免不诚实客户带来的损失。 
Enigma Protector 拥有多种加密特性来保护您的软件免遭破解：
反调试器保护：调试器是一种在程序运行过程中逆向代码的特殊工具，所有的逆向工程师都使用调试器来分析您软件的工作流程和保护方式。使用反调试器保护可以有效的防止程序运行时被调试器加载。 
校验和保护： 校验和是一种特殊数据，用来检查软件数据是否被修改。每一种破解（例如修改注册流程）都需要修改机器码，此时 Enigma Protector 就可以检测到原文件是否被修改，并提醒用户。Enigma Protector 不仅检查被保护文件的机器码，壳自身的机器码也同样会检测！ 
设置启动密码：也许有时候您只希望某一特定的用户组使用保护后的文件，为文件设置启动密码就是最安全的方案。
附加特性：检测同时运行的进程数量、文件名称和磁盘类型。 
高级输入表保护：没有人会知道您导入了哪些 API 函数。 
Enigma Protector 还可以帮助您为您的软件添加一些漂亮的东西，而您无需添加任何代码：
启动画面（闪屏）：为程序添加启动画面，可以在程序启动时显示您指定的图片。
历史更新
Enigma Protector v1.53 Build 2008.09.15
- 增强捆绑功能，支持所有类型文件的捆绑
- 新增 17 种反调试插件 
- 开放插件接口，现在可以自行开发扩展插件 
- 新增 Windows 用户权限检测 
- 新增一种硬件锁定类型 - 硬盘序列号 
- 闪屏新增对 JPEG 和 PNG 文件的支持 
- 闪屏新增“鼠标点击关闭”和“延时启动”选项 
- 新增对虚拟运行环境 VirtualBox 的检测
- 新增字符串加密功能
- 新增字符串加密函数 EP_ProtectedStringByID 和 EP_ProtectedStringByKey
- 新增 EP_ProtectedStringByID 和 EP_ProtectedStringByKey 函数的代码实例，参见 Examples\ProtectedStrings 目录
- 新增用于读取文件水印的 Enigma API 函数 EP_MiscGetWatermark 
- 新增 EP_MiscGetWatermark 函数代码实例，参见 Examples\Watermarks 目录 
- 修复保护带有附加数据的文件可能出现错误的缺陷
- 修复检测 Windows 版本时可能出现错误的缺陷 
- 修复某些 DLL 文件使用 DecryptOnExecute 标记出现错误的缺陷 
- 修复读取重定位表时可能出现错误的缺陷 
- 修复高级输入表保护和 DecryptOnExecute 标记一起使用时出现错误的缺陷
- 修复加载旧版本项目文件时出现错误的缺陷
- 修复与旧版本主程序不兼容的缺陷
Enigma Protector v1.51 Build 2008.07.15
- 新增命令行版本 
- 注册对话框设计器新增消息变量 
- 新增重置本地特殊信息的功能（例如重置本地启动密码） 
- 新增自定义询问启动密码功能 
- 新增更换启动密码选项
- 新增需要注册才能运行的功能 
- 对话框设计器新增 %AppName% %AppVers% 变量，返回应用程序名称和版本 
- 新增基于 Windows 序列号的硬件锁定方式 
- 新增 API 函数 EP_RegKeyCreationDate - 返回密钥创建日期 
- 对话框设计器新增 OnClose 事件 
- 新增反内存断点保护 
- 新增添加/查看水印功能 
- 新增密钥过期提示功能 
- 选项设置页面新增快速帮助链接 
- 改进 VM 引擎加载性能，新版本更快速 
- 重新设计启动密码窗口 
- 修复 Visual Studio 8 及以上版本编译的程序使用入口保护可能出现错误的缺陷 
- 修复保护后的文件 DLL 未导入任何函数可能出现错误的缺陷 
- 修复保护附加文件功能内嵌已经加密过的 DLL 文件可能出现错误的缺陷
- 修复加载项目文件的可能出现错误的缺陷 
- 修复注册对话框设计器不保存标签组件的缺陷
Enigma Protector v1.50 Build 2008.06.01
- 新增自定义注册对话框设计器
- 无需源代码，直接为您的程序添加注册机制
- 消息编辑器新增多个变量
- 新增对虚拟环境的检测（虚拟机软件），例如 VMWare, Virtual PC, Sandboxie
- 新增对 Windows 版本的检测
- 新增对运行中进程的检测（通过进程名称、窗口标题和窗口类）
- 新增使用外部文件校验
- 新增外部文件封装（捆绑）功能
- 可以使用 Enigma Mailer 为用户发送邮件
- 动态调用 Enigma API 可以模拟 LoadLibraryA 函数
- 虚拟机加密新增批量函数选择功能
- 重新构建项目文件；如果您打开旧版本的项目文件，可能会丢失部分信息（不会丢失注册信息） 
- 改进文件分析插件
- 改进虚拟机函数显示方式
- 改进 MAP 文件解析算法
- 改进原始入口点的保护方式，阻止 OEP 查找
- 修复在 Windows Vista 系统下运行出错的缺陷
- 修复保护后的文件在 Windows 2008 Server, Windows 2003 Server 系统下运行出错的缺陷
- 修复保护后的文件在 Windows 9x 系统下 VMWare 虚拟机里运行出错的缺陷
- 修复反调试器保护可能导致错误的缺陷
- 修复附加文件被压缩时可能导致错误的缺陷
- 修复处理不支持 SEH 的文件时可能导致错误的缺陷
- 修复 Windows Vista 系统下以最小权限读取 API 函数时失败的缺陷
- 修复 Decrypt_On_Execute 标识的缺陷（保护后的文件有时会崩溃）
- 修复处理带有附加数据的文件熵可能出现错误的缺陷 
- 修复试用运行时间选项的缺陷（注册后仍有可能过期）
- 修复动态调用 Enigma API 可能出现错误的缺陷
- 修复 keygen.dll VerifyRegistrationInfo 函数的缺陷（重新构建 TVerifyKey 类型）
Enigma Protector v1.40 Build 2008.01.22
- 新增 Enigma Protector 注册管理器 - 独立的许可管理系统，简单高效管理您的注册用户
- 新增 Enigma Protector 邮件服务器 - 独立的 Email 管理系统，自动创建邮件并发送
- 新增 Czech 界面翻译
- 新增注册码黑名单功能 
- 修复虚拟机处理 mov [reg32 + imm8], imm32 指令时的缺陷 
- 修复帮助文件有时无法调用的缺陷
Enigma Protector v1.37 Build 2007.12.26
- 添加多种注册密匙类型 (10, 16, 32, 64 digs) 
- 添加短注册密匙（注册密匙达到 41 个符号） 
- 修复虚拟机处理 cmp [reg32], imm32 指令时的缺陷 
- 修复在 Windows Vista 下运行时的兼容性缺陷
Enigma Protector v1.35 Build 2007.10.12
- 改进虚拟机保护，支持 Borland Delphi, Borland C++ Builder, Microsoft Visual C++...
- 解决 DEP 异常的兼容性问题，保护后的程序不再因此而无法运行
- 添加 C# 程序实例
- 添加对 .NET 程序支持的 Enigma API 函数
- 修复 Visual Basic 的 Enigma API 函数 EP_RegKeyExpirationDate
Enigma Protector v1.33 Build 2007.08.10
- 新增消息变量，现在可以使用特殊字符串显示数值
- 新增运行时间限制注册密匙
- 新增硬件锁定注册密匙
- 新增 Enigma API 函数 EP_RegKeyExpirationDate - 返回密匙过期日期
- 新增进程实例数量检测功能 
- 主要功能设置菜单新增状态显示图标
- 新增多语言支持
- 新增对 .NET 可执行文件的支持
- 修复 Enigma API 部分可能引起错误的缺陷
- 修复 Enigma API 对 Visual Basic 编译的可执行文件可能引起错误的缺陷
Enigma Protector 2.70.20110629
- 新增硬件 ID 检查器，用于检查硬件 ID 的内容。 
- 新增许可管理器替代原来的注册管理器。
- 许可管理器新增数据库导入。
- 新增指定项目导出密钥生成器的功能。
- 新增多种类型的注册密钥，强度相当于RSA 512/768/1024/2048/3072/4096 bits。
- 新增模拟器检测插件。
- 注册算法由RSA更换为ECC。
- 更新keygen.dll及其函数功能。
- 改进项目代码。
- 改进加密算法的线程安全。
- 改进虚拟机加载函数的方式。
- 改进注册密钥验证机制，更快速。
- 改进注册算法强度，密钥最大强度相当于RSA 4096。
- 改进项目文件，不向前兼容。
- 改进注册算法，不向前兼容。
- 改进项目文件加载机制。
- 改进界面和许可管理器逻辑。
- 修复加密Visual Studio 8.0 ActiveX dll文件产生错误的缺陷。
- 修复加密某些。NET可执行文件时产生错误的缺陷。