全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Project and Security应用与安全基于硬盘号和CPU序列号的软件加密技术摘要:本文提供了一种注册码与计算机硬件参数相关的一种加密方法,并通过具体的实例讲述了如何对软件加密的方法。关键词:硬盘号,CPU序列号,注册表刘文奇,孙艳云,沙莉,单薇薇(辽宁省气象信息与技术保障中心,沈阳110015)1 引言计算机软件是一种特殊的产品,为了防止软件的非法复制、盗版,保护软件开发商的利益,就必须对软件进行加密保护。采用基于硬盘号和CPU序列号的软件加密技术,软件会根据微机硬件参数给出该软件的序列号;用户需要把这一序列号用E-mail、电话或邮寄等方法寄给软件提供商或开发商,软件开发商利用注册机(软件)产生该软件的注册号寄给用户即可。它的注册信息与机器的硬件信息有关,不同于以前的序列号的注册方法,提高了软件的安全性。2 硬盘号和CPU序列号(1)硬盘序列号:英文名 Hard Disk Serial Number,该号是出厂时生产厂家为区别产品而设置的,是唯一的,是只读的,利用硬盘序列号的加密往往是利用其唯一和只读的特性。在有的加密软件中采用的是硬盘卷的序列号:英文名 Volume Serial Number,以指硬盘的逻辑盘,如:“C:”、“D:”等,是高级格式化时随机产生的,是可以修改的,由于其可修改,所以利用其加密,对于安全而言就大打折扣了。硬盘的卷号通过WINAPI函数,GetVolumeInformation即可获得。就IDE HDD 而言,对于没有序列号或SCSI HDD硬盘则无能为力,这也是利用它进行加密的局限性。(2)CPU序列号是一个建立在处理器内部的、唯一的、不能被修改的编号。它由96位数字组成。高32位是CPU ID,用来识别CPU类型。低64位每个处理器都不同,唯一地代表了该处理器。CPU号可以用来识别每一个处理器。为了适应这一新特征,Intel在处理中增加了两条指令(“读取”和“禁止” )和一个寄存器位(模式指定寄存器位:Model Specific Register-“MSR”)。读取指令扩展了CPUID读取指令。当执行读取指令时可以得到96位的处理器序列号。禁止指令可以禁止对处理器序列号的读取。为了配合CPU序列号的读取和禁止,设置了MSR位。当MSR位为“0”时可以读取CPU序列号;当“MSR”位为“1”时只能读取高32位(即CPU ID),而低64位全为零。3 程序实现3.1加密方法通过应用程序取得机器硬盘号和CPU号通过机密程序形成一个注册序列号,用户将这个注册序列号发送到软件注册者,软件注册者按照预定的算法生成注册码,然后将其发给用户,通过注册形成合法用户。软件每次启动时都到注册表或注册文件的相应位置读取注册码并与软件生产的注册码比较,一致则是合法用户,否则是非法用户。由于注册码与用户计算机的硬盘号与CPU号相关联,故其是唯一的,非法用户即使知道注册序列号与注册码也无法使用。3.2实现过程(1)CPU号的读取硬盘的序列号只能采用对硬盘控制器直接操作的方式进行读取,也就是说只能采用CPU的I/O指令操作硬盘控制器,对于CPU号的读取采用了在DELPHI嵌入汇编的方法读取。其读取方法如下:MOV EAX.01H如果返回的EDX中,低18位为1,那么这个CPU就是支持序列号的。此时EAX就是序列号的高32位。这32位对同一型号的CPU是一样的。再执行:MOV EAX.03H此时的EDX:ECX就是序列号的第64位。(2)硬盘号的读取硬盘号的读取通过CreateFile函数,CreateFile可以打开物理设备和串口等,使用CreateFile(.PHYSICALDRIVEI,)打开硬盘,其中的I为0255,其为需要读取的硬盘。命令如下:hDevice := CreateFile(.PhysicalDrive0,GENERIC_READ OR GENERIC_WRITE, FILE_SHARE_READ OR FILE_SHARE_WRITE, NIL, OPEN_EXISTING, 0, 0)使用DeviceIOControl函数对打开的设备进行通信,发送指定命令,根据返回的PSENDCMDOUTPARAMS结构,得到物理序列号和模型号,把物理序列号和模型号格式化为一定的格式输出。(3)对注册表的操作Delphi程序中可利用TRegistry对象来存取注册表文件中的信息。 创建和释放TRegistry对象通过Create和Destroy来创建对象和释放内存。 读取注册表中写入信息对于注册表数据的读取可采用ReadString、ReadInteger、ReadBinaryData等函数来读取字符串、数值、二进制值。 向注册表中写入信息Write系列方法将信息转化为指定的类型,并写入注册表。对于注册表数据的写入可采用WriteString、WriteInteger、WriteBinaryData来写入字符串、数值、二进制值。4 结语本文给出了一种软件加密的方法,通过该方法产生的注册码与计算机的硬件相关,对于读取的硬盘号、CPU号可以通过MD5加密算法产生一个注册号,保证软件加密
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学三年级数学两位数乘两位数笔算同步测试练习题
- 维修合同验收标准
- 2024年03月安徽省黄山市市直事业单位2024年度统一笔试公开招聘93名工作人员3笔试参考题库附带答案详解
- 购物中心商场物业消防安全专题培训课程(上)
- 2024年02月重庆市巴南区事业单位2024年第一季度公开招考104名工作人员笔试参考题库附带答案详解
- 2024年02月西南财经大学天府学院2024年康养护理学院招聘笔试参考题库后附答案详解
- 2024年02月湖北省洪湖市事业单位2024年统一公开招聘228名工作人员5笔试参考题库后附答案详解
- 2024年02月海南省五指山市2024年上半年公开招考事业单位工作人员(1号)笔试参考题库后附答案详解
- 2024年02月江西省上饶市事业单位2024年统一公开招聘1158名工作人员笔试参考题库后附答案详解
- 2024年02月杭州电子科技大学财务处2024年公开招聘1名工作人员(劳务派遣)笔试参考题库后附答案详解
- 文艺复兴史学习通课后章节答案期末考试题库2023年
- 小学六年级英语教师家长会课件PPT
- 文旅神话小镇旅游全域策划与规划运营方案
- 部编版七年级语文上册(课本全册)课后习题参考答案
- 高中生物-DNA是主要的遗传物质教学课件设计
- 肠道菌群与胆汁酸代谢
- 2022中国幽门螺杆菌感染治疗指南
- 速冻水饺市场状况分析
- 干部政治理论水平任职资格考试
- 统编版四年级下册期中复习字词专项训练-成语专项(含答案+详细解析)
- 新北师大版二年级数学下册第一单元教案(含计划)
评论
0/150
提交评论