A. 如何使用外壳工具完成加密
如何使用外 具完成加密 使用外 密工具,开发商可以在没有程序源 或不对程序源 做任何改动的情况下快捷地完成 加密工作,并保证有着较高的加密强度。若没有相应的硬件狗存在,加密后的程序将无法启动。 外 密工具的特点 1、 使用三种方式加密:外壳、嵌入、内外结合。 外 所谓外壳,是加密工具加到被加密程序的一部分程序。加密程序启动时外 先被执行。外壳 要检查硬件狗的存在性和一致性。如果对应的硬件狗存在,则进入原程序的入 否则终止程序。外壳只 在加密程序启动时执行一次。 嵌入 所谓嵌入,是加密工具在被加密程序中嵌入一个公共程序,加密程序在整个运行期内以一定的 频率执行这个公共程序,该程序检查硬件狗的存在性和一致性。如果对应的硬件狗存在,则继续执行原程 序,否则终止程序。本加密方式可选。 内外结合 如果被加密的程序已经调用了赛孚耐公司提供的接口函数,那么外壳程序会通知接口函数, 外 序是否已经被执行,以防止外壳程序被跳过。如果发现外壳程序没有被执行,会终止程序。 这些数据文件由您的应用程序使用, 或者由受保护的应用程序产生 (输 2、 可以对数据文件进行加密, 出文件) 。这些文件只能由受保护的应用程序读取。 3、 可以通过关联许可证文件灵活地限制使用时间。 4、 可以自定义查硬件狗错误时显示给用户的提示信息,也可以选择不显示提示信息。 5、 外 护是一个多层的体系结构。只有前一层执行成功,才会 紧相连的一层。这种多层体系 结构可为您的应用程序提供额外的保护--这与用多道锁为您的门提供保护的功能相似。突破这 些保护层需要更多资源、时间和技巧,可以有效的阻止黑客攻击。此外,由于采用了多层随机模 式,所以任何两次被外 密的应用程序均不相同。 外 密工具可以加密 32/64 位 Windows 程序,在宏狗安装目录下\10003(您的软件系列号) \Shell\Win32shl.exe。 应用示例 下面以使用一个硬件狗保护 Notepad.exe 和 Calc.exe 为例说明外 密工具的使用。 在使用之前假设已 经使用开发商工具在文件系统中创建了两个许可证文件(许可证文件的文件夹 ID 为 16128 ,文件 ID 分 别为 10 和 20) 。关于如何创建许可证文件请查阅开发商手册开发商工具的使用一章。 1.请先插入硬件狗,执行步骤 1,如图 1 所示,指定要加密的 EXE 文件。 第 1 页 步骤 1: 单击浏览按钮, 指定要加密的 EXE 文 件;或在“源文件”文 本框中输入 要加密的 EXE 文件的路径和文 件名。 图 1 指定源文件后,系统会在“目标路径”文本框中自动添加加密后的 EXE 文件(即目标文件)存放的路 径。系统默认将目标文件存放到 OUTPUT 路径下,我们建议用户采用这种默认方式。 如果目标文件存在,覆盖它 如果选中“如果目标文件已存在,覆盖它”复选框,当目标文件所在路径下有同名文件存在,加密过 程不再出现是否覆盖文件的提示信息。 2.对加密狗的硬件参数进行设置。 产品名称 加密后的应用程序在运行时会查找与系列号和产品名称相一致的硬件狗。可以此处指定产品名称。 查找方式 通过选择查找方式,能够更快地、更准 找到硬件狗。请选择适合您的应用程序的查找方式。 用户 加密后的应用程序在运行时会访问硬件狗,请指定硬件狗的用户 。 嵌入 第 2 页 加密软件运行期间,可以不断地检查对应的硬件狗是否存在。如果清空“嵌入”复选框,则在程序运 行期间不检查硬件狗。如果选中“嵌入”复选框,当程序运行期间检查不到对应的硬件狗时,程序会停止 运行。您可以指定检查间隔,间隔以秒为单位。缺省值为 120 秒,即 2 分钟。 .NET 增强 .NET 增强功能为纯.NET 应用程序(EXE 和 DLL)提供了增强的安全性。此功能可执行以下操作: 隐藏原始入口点方法(仅用于.NET 可执行文件) 加密原始应用程序的字符串 加密原始应用程序的常量 (用于 32 位.NET 应用程序) SDNPro64.dll 和 (用于 64 位.NET 如果选择了此功能, 则需要将 SDNPro.dll 应用程序)与受保护应用程序一起提供给最终用户。 注意 使用.NET 增强特征项(使用.Net 增强保护外 NET 应用程序)的前提条件是机器中应安装了同 一版本的.NETFramework 和.NET SDK。.NET 增强选项不支持混合代码应用程序。 多层保护级别 外 提供多层保护。因为应用程序和外 之间的连接处非常容易受到攻击,所以您可以选择使用 多层外 从第 1 级到第 5 级)来保护您的应用程序。第 1 级可提供合理的保护,而第 5 级可提供最强保 护。但是,随着每一保护级别的增加,应用程序的大小和用于启动的时间也会相应增加。在缺省情况下, 使用第 3 级保护方式。 隐藏导入符号 选定此复选框隐藏您的程序中的导入符号。但是,请注意该选项不适用于此处所列出的文件类型使SmartHeap DLLs 的应用程序 当您同时加密数据文件或者使用数据文件加密选项时 如果存在要实施保护的任意数据文件或已指定了文件加密设置,则将忽略隐藏导入符号选项。 我使用了外 SDK 如果您已经使用外壳软件开发工具包(位于\Shell SDK 文件夹下)来保护您的重要 段、常量和字 符串数据,则选中此复选框。参阅该文件夹中的自述文件获得详细信息。 存在调试器时允许我的应用程序运行 您可以不选择该复选框,禁止在出现调试器时执行应用程序。如果在系统中探测到调试器,被保护的 应用程序将退出。非恶意用户可以关闭调试器,重新启动应用程序。但是,如果出于某种原因,您需要在 存在调试器的情况下允许您的应用程序运行,则选择该复选框。 3.执行步骤 2、3、4、5、6,如图 2、3 所示,关联许可证文件。 步骤 2: 单 击“关联 许可证文 件”按钮。 图 2 第 4 页 步骤 3:选择 “关联许可 证文件” 。 步骤 4: 指定文件 夹 ID。 步骤 5: 指定文件 ID。 步骤 6:单击 “ ”按钮。 图 3 注意 许可证文件将被关联到主界面上的源文件。如果主界面上的源文件是一个动态连接库文件,在 此动态连接库被加载到内存中时,会调用 RC_VisitLicenseFile 函数检查许可证文件。关于 RC_VisitLicenseFile 函数的说明,请查阅开发商手册 API 接口函数说明部分。 4.我们提供了 19 种不同错误类型的错误信息,请根据具体情况分别指定其内容。标题限制在 60 字节 内,每条消息限制在 100 字节内。执行步骤 7、8、9、10、11、12,如图 4、5 所示,设置提示消息。 第 5 页 步骤 7:单 击“设置提 示消息”出 , 现如下图的 界面。 图 4 第 6 页 步骤 8: 在查硬件 狗出现错误时, 如需要显示提示 信息,则选中此 复选框;否则清 空此复选框。 步骤 10: 根据 需要, 修改提 示信息对话 框的内容。 步骤 9:根 据需要,修 改提示信息 对话框的标 题。 步骤 12:单击 “ ”按钮。 图 5 步骤 11:根据需 要,选择错误消 息的类型:窗口 消息或者控制台 消息。 5.如果在加密 EXE 文件的同时需要加密数据文件,执行步骤 13,如图 6 所示: 第 7 页 步骤 13: 单击 “设置要加 密的数据文 件”按钮。 图 6 6.指定要加密的数据文件(实际上 Notepad.exe 执行时不需要数据库文件,这里只是一个加密演示) , 执行步骤 14,如图 7 所示: 步骤 14:单 击 浏 览 按 钮,指定要 加密的数据 文件。 图 7 7.执行步骤 15,如图 8 所示,将数据文件加入文件列表。如需加入多个数据文件,请重复步骤 14 和 15。此时文件加密选项会根据文件列表进行自动设置,如果您要进一步对其进行设置,例如,当您要加 第 8 页 密新生成的数据文件(输出文件)时,执行步骤 16 更改文件加密选项。注意:在执行步骤 16 前,请插上 狗。外壳工具会从狗里获得狗的 ID 作为默认的加密种子。 步骤 15: “增 单击 加到文件列表” 按 钮, 将要加密的数 据文件加入文件 列表。 步骤 16: 单击 此处文本。 图 8 8.在文本编辑框中已经包含“*.DBF;” ,例如,为了加密受保护的程序在运行过程中生成的文本文件, 执行步骤 17,在文本编辑框中添加“*.TXT;” 。如果想要指定自己的加密种子,执行步骤 18,选中“指定 我自己的加密种子”复选框,并在文本编辑框中输入自定义的加密种子。另外,为了提高安全性,2.0 版本 的外壳工具默认会使用 AES 算法对数据文件进行加密,而以前的版本用的是私有算法。如果要保持跟以前 版本的兼容性而使用私有算法,可以不选中“使用 AES 算法加密”复选框。执行步骤 20,返回“设置要 加密的数据文件”对话框,单击 按钮完成数据文件加密设置。 步骤 18:指定自己 的加密种子。 步骤 17:修改或添 加文件过滤器。 步骤 19:指定是否 使用 AES 算法加密 步骤 20:点击 定按钮。 图 9 9.完成有关 Notepad.exe 的所有设置后执行步骤 21,如图 10 所示,将其加入加密中心,成为加密队 列中的一个加密项。然后对 Calc.exe 重复步骤 1-21,如果需要关联许可证文件,请修改“文件 ID” 的值,如图 11 所示。使 Calc.exe 和 Notepad.exe 运行时访问不同的许可证文件。 第 9 页 步骤 21: 单击 “加入加密 队列” 单击此按钮,可 将选中的加密项 清除。 单击此按钮可 查看某个加密 项的所有设置 信息。 单击此按 钮,可清 除所有加 密项。 图 10 将文件 ID 设 置为:20。 图 11 9.可以将加密中心所有加密项的设置存成一个配置文件,以供下一次使用。执行步骤 22-24,如图 12 所示。 第 10 页 步骤 22: 单 击此按钮。 步骤 23: 单击“存 储配置文 件” 命令。 步骤 24:键入 配置文件名后, 单击 “保存”按 钮。 图 12 10.执行步骤 25,如图 13 所示,执行加密操作。 步骤 25: 单击“加 密” 按钮。 图 13 11.加密过程中会出现如下图所示的对话框。 第 11 页 在加密过程中,单 击“中止”按钮可 中止加密操作。 图 14 进程条指示加密正在进行。加密结束后会提示结果。如果加密成功,过 2 秒后,程序自动加密下 一个文件。如果加密失败,会提示失败原因,并给出解决措施或错误码,关于错误码的定义请下面的 保护时的错误 。错误信息会左右移动,以引起您的注意。至此,完成了对 Notepad.exe 和 Calc.exe 的保护。 保护时的错误 下表列出了保护应用程序和数据文件时可能产生的错误,对不不在下表中的错误代码,请参见安 装目录下的 errcode-chn.txt。 错误码 (十六进制) 194 SP_ERR_NOT_ENOUGH_MEMORY 没有足够的资源来保护应用程序。