姚卫国
【摘 要】为了保护知识产权,防止软件盗版的产生,本文主要介绍了软件程序加密方法中的软加密方法、软加密工作原理以及利用易语言编程生成计算机指纹信息的过程。
【关键词】加密方法;加密原理;计算机指纹;易语言
1 前言
为防止软件被盗用,维护软件开发者的知识产权,保护软件开发者的经济利益,软件开发者通常防止盗版的措施是采用软加密方法来保护自己的软件产品。本文主要介绍了软加密的工作原理和一种新的生成计算机指纹信息的方法。
2 加密原理
软加密是一种在软件运行过程中对计算机指纹进行认证的技术,不同于硬加密需要在计算机相应硬件上固化加密信息。对于任意的两台计算机,都能够通过计算机的系统的特征信息或计算机硬件的标识信息进行区分,如同人的指纹信息一样。这些计算机系统的特征信息和计算机硬件的标识信息的集合统称为计算机指纹。如:磁盘的分区卷标,不同软件系统的计算机中磁盘分区卷标不同;硬盘序列号,任意两张硬盘的序列号是不一样的。软加密并不是对软件的所有信息都进行加密设置,仅仅是在软件安装或运行时进行加密处理。软件程序初次安装时,安装软件会读取相应的计算机指纹信息,安装软件使用用软件开发者在程序中设置的加密算法加密计算机指纹信息生成加密文件,并将加密文件写入到计算机注册表中。当下次启动运行软件程序时,软件程序再次读取相应的计算机指纹信息并采用同一种加密算法将其加密产生密文文件,然后与计算机软件注册表中的密文文件数据进行比较,如果两个文件数据相同则继续运行软件程序,否则停止运行软件程序。
3 计算机指纹的生成
易语言是我国自主研发、拥有全部软件知识产权的软件开发编程语言。它具有全可视化的窗口界面,支持使用汉语字、词编程。易语言可有效的保障国家的安全,有效地防止外国软件的后门隐患。
用易语言程序生成计算机指纹,主要依靠易语言中的系统核心支持库。系统核心支持库中的GetHDiskCode命令、GetHDInfo命令、GetCpuInfo命令和GetApa-pterList命令功能如下表1,可以生成计算机指纹硬盘特征字、硬盘序列号、CPU序列号、网卡MAC等信息。
表1 命令功能表
命令名称:GetHDiskCode
调用格式:〈整数型〉取硬盘特征字()
返回电脑中第一个物理硬盘的物理特征字,该特征字是仅硬件相关的,也就是说与任何软件系统都无关(包括操作系统)。本命令为初级命令。
命令名称:GetHDInfo
调用格式:〈逻辑型〉取硬盘信息(硬盘信息 硬盘信息,[整数型 硬盘序号])
取硬件出厂信息。本命令为初级命令。
参数<1>的名称为“硬盘信息”,类型为“硬盘信息(HDInfo)”。待取得的硬盘信息。
参数<2>的名称为“硬盘序号”,类型为“整数型(int)”,可以被省略。待取得的硬盘信息的硬盘序号。可以为以下常量之一:0、#接口常量.磁盘0;1、#接口常量.磁盘1;2、#接口常量.磁盘2;3、#接口常量.磁盘3。
命令名称:GetCpuInfo
调用格式:〈无返回值〉取CPU信息(CPU信息CPU信息)
取CPU信息。本命令为初级命令。
参数<1>的名称为“CPU信息”,类型为“CPU信息(CPUInfo)”。待取得的CPU信息。
命令名称:GetApapterList
调用格式:〈网卡信息数组〉取网卡信息列表()
取得本地计算机的网卡信息列表。失败返回空。本命令为初级命令。
4 易语言程序的实现
4.1创建程序启动窗口
利用系统核心支持库的基本组件创建计算机指纹信息显示窗口,各基本组件的名称和属性如下表2。
表2 组件名称、属性表
组件名称 属性 组件名称 属性
标签1 标题=“硬盘特征字” 编辑框1 内容=NULL
标签2 标题=“硬盘序列号” 编辑框2 内容= NULL
标签3 标题=“CPU序列号” 编辑框3 内容= NULL
标签4 标题=“网卡MAC” 编辑框4 内容= NULL
4.2双击启动窗口,添加启动窗口程序变量,添加子程序,如图1
4.3编辑程序代码
编辑框1.内容 = 到文本 (取硬盘特征字 ())‘GetHDiskCode命令的应用
取硬盘信息 (硬盘信息, #接口常量.磁盘0)‘GetHDInfo命令的应用
编辑框2.内容 = 到文本 (硬盘信息.序列号)
取CPU信息 (CPU)‘GetCpuInfo命令的应用
编辑框3.内容 = 到文本 (CPU.序列号)
网卡 = 取网卡信息列表 () ‘GetApapterList命令的应用
编辑框5.内容 = 到文本 (网卡 [1].物理地址)
4.4程序运行结果,如图2。
图1 程序变量定义、子程序定义图
图2 运行结果图
5 总结
易语言是一种可以使用汉语字、词编写程序,易学易用,适应于我国国情的软件开发程序设计语言。通过易语言的系统核心支持库提供的命令,可以编写简单的易语言程序代码生成相应的计算机指纹信息,方便实现易语言软件程序的软加密操作,也能够有效地保护我国计算机信息的安全。
参考文献:
[1]魏会君.软件的加密保护技术探讨[J].石油工业计算机应用.2002,2:40—41.
[2]鞠斌山,邱晓凤,张文东.利用计算机指纹实现软件加密原理与方法[J].青岛大学学报.2005,9:63—67.
[3]大连易翔软件开发有限公司编.中文编程·从入门到精通[M]. 海洋出版社.2011年