程序授权托管解决方案IntelliLock关于GUI要素介绍
IntelliLock是用于许可控制和应用程序的高级100%托管解决方案。.NET Reactor提供了基于本机代码保护的许可系统,而IntelliLock选择了100%托管方式来应用许可和保护功能。
IntelliLock主要功能特点:
- 创建软件的试用版
- 使用许可证文件轻松将您的试用版转换为完全许可版
- 全面的许可证管理
- 软件开发工具包
- 强RSA加密
- 装配合并/打包功能
- 组装保护
- 自动化加载项集成Visual Studio
组装清单
在这里可以指定程序集以及IntelliLock输出的目标路径。上面的装配列表中的第一个装配是主要装配。如果定义多个部件,则可以选择合并它们或分别锁定/保护它们。使用“属性”按钮,可以分别为每个程序集设置强名称或数字证书设置。使用按钮“添加”和“删除”来添加和删除程序集。
装配体属性
在这里,您可以指定您的强名称密钥对文件以及带有相应密码的数字证书。此外,您可以选择将程序集打包为嵌入式资源。如果选中“不保护此程序集”,则IntelliLock不会对该程序集应用任何锁定或保护功能。当然,仍然可以将此装配体与主装配体合并。
许可证文件名
设置受保护程序集将自动搜索的许可证文件的文件名。一旦找到有效的许可证文件,将忽略所有试用限制,并遵守许可证文件设置。
还可以在“许可证名称”文本框中使用以下值直接指向特定的许可证位置:
[ApplicationData],[CommonApplicationData],[LocalApplicationData],[MyDocuments],[CommonDocuments],[AssemblyLocation]
例:
[ApplicationData]\mysubfolder\mysubsubfolder\*.license
许可证生成器
IntelliLock许可证系统允许您在没有许可证文件的情况下分发程序集,前提是您已将“无有效许可证运行”设置为True。客户购买许可证时,可以使用许可证生成器或SDK生成许可证文件来解锁程序集。许可证文件中的锁定设置始终会覆盖程序集中存储的设置。
要创建有效的许可证文件,必须使用与锁定程序集相同的主密钥来创建许可证。创建项目时会生成此主密钥,必须保存该主密钥以保留原始密钥,否则将无法生成有效的许可证文件。
- 硬件锁定许可证-此选项允许您基于标识该PC中特定硬件组合的硬件ID,创建只能在特定PC上使用的许可证。禁用了硬件的许可证文件可以在任何PC上使用。利用硬件锁可以防止您的客户购买一个许可证文件并在多台PC上使用它。要创建锁定到特定PC硬件的许可证,必须启用“硬件锁定”并提供客户端PC的硬件ID。请使用SDK函数在程序集中显示硬件ID(例如,在“关于”对话框中)。
- 容忍级别-容忍级别表示在锁定的组件将硬件ID识别为无效之前允许更改的硬件组件数。
- 仅在设计时检查硬件ID-将设计时使用限制为特定计算机。对于组件库很有用。
- 运行时许可证-生成的许可证在运行时有效。
- 设计时许可证-生成的许可证在可视化设计师或编译器的设计时有效。
- 版本锁定-选中此选项可确保许可证仅对特定的程序集版本有效。使用星号(*)定义应忽略版本号的哪些部分。在“许可证信息”列表上单击鼠标右键以定义进一步的组装限制。
-
将试用限制应用于许可证文件-此选项使用您在“锁定设置”标签中设置的设置锁定许可证文件。使用它来延长试用期,完成基于订阅/时间的许可证到期等...
- 作为试用版-如果选中此选项,则创建的许可证文件将试用限制(基于在“锁定设置”选项卡中设置的设置)应用于部件。适用于申请或延长试用期。
- 作为完整版本-如果选中此选项,则创建的许可证文件将使用在“锁定设置”选项卡中设置的设置将有时间限制的完整版本应用于您的部件。
- 新期间-如果选中此选项,则创建的许可证文件将使用一个独立的数据插槽来存储超出天数等。请取消选中此复选框以重复使用已超过天数的ect。
- 强制许可证服务器验证-如果要先通过服务器验证许可证文件,然后再将其识别为有效许可证文件,则可以在此处将地址设置为相应的Web服务。使用菜单/栏项目“许可证管理”->“ ASP.NET管理/激活”来创建相应的服务。
- 浮动许可证/并发用户-如果要应用通过服务器控制的浮动许可证,则可以在此处将地址设置为相应的Web服务。使用菜单/栏项目“许可证管理”->“ ASP.NET管理/激活”来创建相应的服务。
- 许可证信息-您可以将自定义许可证信息添加到许可证文件。自定义许可证信息允许灵活的许可证Shema,模块化许可证等。您的程序集可以使用SDK库中提供的功能访问此信息。使用鼠标右键添加部件属性信息。锁定的程序集会自动将此特殊信息与调用程序集的属性进行比较。只有具有匹配属性的程序集才可以访问锁定的程序集。
许可证信息
可以在此处将自定义许可证信息添加到许可证文件。自定义许可证信息允许灵活的许可证Shema,模块化许可证等。您的程序集可以使用SDK库中可用的功能访问此信息。使用鼠标右键添加部件属性信息。锁定的程序集会自动将此特殊信息与调用程序集的属性进行比较。只有具有匹配属性的程序集才可以访问锁定的程序集。
锁定设定
通过使用各种评估锁,IntelliLock使您能够以多种方式控制组件的使用-试用版,软件租赁,自定义锁,软件即服务-都可以使用IntelliLock锁进行,并且都无需任何修改到您的源代码。我们建议您花一些时间来了解这些许可证执行选项,因为您花在这样做上的时间将是很值得的。
在“锁定设置”页面中,指定保护组件时希望IntelliLock内置到程序集中的许可控制。这些锁由IntelliLock包含在受保护程序集中的其他代码实现,不需要更改程序集源代码即可实现。IntelliLock许可的强大功能之一是,可以通过向客户提供许可文件来覆盖内置于程序集中的设置,这意味着您无需提供程序的单独许可版本-试用版和完整版完全相同,唯一的不同是您提供给付费客户的许可证文件。
- 到期天数-您的应用程序将在计算机上首次安装之日起指定的天数内运行。
- 到期日期-到期日期锁使您可以指定程序集应到期的确切日期。例如,对于Beta测试版和软件租赁而言,这很有用(您可以在其中将到期日期指定为客户为使用软件付费的最后日期之后的第二天)。
- 执行-此锁(如果启用)使您的应用程序在指定的执行次数后过期。
- 运行时-用户可以无限制地运行该程序集,但是每次运行指定时间后,该附件将关闭。
- 全局时间-此选项设置程序集可以保留在内存中的确切总分钟数。
- 实例-此锁(如果启用)允许您指定允许用户同时运行的应用程序的最大副本数。请注意,超过指定数量的实例不会导致您的应用程序过期。
- 自定义-此锁(如果启用)将启用试用模式,而无需使用上述锁。如果您想使用自己的试用限制,这将非常有用。要确定当前许可证状态,请使用InteliLock SDK。
-
过期行为全部
- 启用后,仅当所有其他启用的锁都已过期时,才导致程序集过期。
- 禁用后,如果其中一个锁到期,则程序集也会到期。这是一个非常强大的选项,使您能够(例如)实施30天或50次使用的试用期。值得花一点时间考虑此选项提供的灵活性。
- 不带许可证文件运行-设置为false要求有效的许可证才能进行操作。如果为true,则启用启用的Inbuild Locks。如果找到有效的许可证文件,则锁定设置将被许可证文件设置覆盖。要使用此选项,必须至少启用一个试用锁或自定义锁。
- 到期后关闭进程-到期时终止正在运行的进程。
- 在嵌入式资源中搜索-启用此选项可在调用程序集的嵌入式资源中搜索许可证文件。
- 在HDD上搜索-启用此选项可在锁定的程序集中的位置搜索许可证文件。如果要直接加载许可证,请使用IntelliLock SDK。
- 异步许可证检查-选中此选项可缩短启动时间,因为在后台检查了许可证状态。许可证检查完成后,将立即引发事件EvaluationMonitor.LicenseCheckFinished(IntelliLock.Licensing.dll)。如果启用了此选项,则在引发EvaluationMonitor.LicenseCheckFinished之前,请勿检查许可证状态或调用HardwareID.GetHardwareID(...)。
主密钥
要创建有效的许可证文件,必须使用与用于产生IntelliLock锁定/保护输出相同的主密钥来创建许可证。在创建项目时会生成此主密钥,必须将其保存以保留原始密钥。切勿将万能钥匙交给任何人!
保护设置
“保护设置”页面允许您启用各种保护选项。
-
模糊处理-IntelliLock提供了彻底的类,类型和变量模糊处理。混淆是使您的源代码更难(但并非不可能)供人类理解的过程。混淆通过将您分配给类,方法,属性和变量的有意义的名称替换为无意义的名称而起作用。例如,它可以用“ A4DF3CV89G”替换“
counter”的变量名-对人类而言,这些混淆的名称令人困惑且难以记住,但对.NET Framework解释器没有影响。
- 使用不可打印的字符-使用不可打印的字符串来混淆类型和成员名称,但是如果程序集必须作为安全代码运行则不能使用。
- 生成短字符串-启用此选项可以为混淆的类和成员名生成短字符串。这样可以减小文件大小。
- 增量混淆-如果希望IntelliLock始终为类型和成员名称生成相同的混淆字符串,则需要启用此选项。
- 创建映射文件-创建一个将未混淆名称与混淆名称交叉引用的文件,该文件由堆栈跟踪反混淆器使用。
- 忽略InternalVisibleTo-启用此选项可混淆内部类和成员,即使使用InternalsVisibleTo程序集属性也是如此。
- 排除-如果要防止对特定类型的类型或成员进行混淆,可以在此处启用相应的选项。请注意,IntelliLock还提供声明性混淆。
- 包含-如果要混淆所有类型或成员(包括公共成员),则需要在此处启用相应的选项。
- 字符串加密-伪装内部文本。这种加密使黑客尝试对程序集进行代码补丁变得更加困难,因为他将无法识别消息文本或其他有用的字符串,从而使识别补丁代码的难度变得更大。
- 高级字符串加密-除了上述标准字符串加密之外,此选项还添加了特殊的防篡改代码。任何尝试通过任何黑客工具重新编译代码的尝试都将失败。
- 代码补丁保护-启用此选项可防止您的源代码被黑客工具篡改。
- 禁止ILDASM-启用此选项可使用ILDASM.exe工具禁止反汇编为IL。
- 强名删除保护-此选项可防止受保护的程序集被黑客工具篡改。
- 加密IL代码-启用此选项可以加密方法的源代码。在运行时,源代码将在内存中解密。
- 注入无效的元数据-注入无效的元数据。大多数工具无法读取带有无效元数据的程序集。当然,您的程序集对.NET运行时仍保持完全功能。
- ·控制流混淆-干扰程序流,使人眼很难遵循程序逻辑。级别9表示最强的控制流混淆。