




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件注册器的基本原理 王有翦 甘肃西峰(745000) 摘要:本文介绍了一种软件注册器的实现方案,并且提供了一崐个用C语言实现的例子。 关键词:软件注册器 加密 IDE接口 The basic theroy of software register and implation Wang Youjian China People Bank Xifeng Branch,XifengGanSu 745000 Abstract: This article introduces the method of崐realization of software registrar,and provided a example of C language. Key:Software registrar,encryption,IDE interface */ 目前,传统的磁盘加密和软件狗加密的技术,在层出不穷的解崐密工具的攻击下,已走到山穷水尽之地,很难对抗内存驻留程序的崐动态仿真等解密技术。为了保护软件开发者的权益,出现了使用电崐脑中的ROM、CMOS等不容易改变且不同的机器上内容不同的信息进崐行密钥生成和检验的软件注册器加密办法,为软件的加密销售找到崐了一种新的途径。同时也出现了专门的软件注册器,广泛使用的崐CCED、数据通等软件使用的就是同一种软件注册器。 一些早期软件注册器使用电脑的CMOS信息,使用户的硬件升级崐受到一定的限制。后来的软件注册器仅仅使用硬盘驱动器的一些信崐息,摆脱了对其它硬件依赖性,成为一种比较完善的加密方式。 要让应用软件确认只有一个硬盘是合法用户的硬盘,必须使用硬盘中的唯一性信息,这些信息不能受硬盘的分区和格式化等软件崐因素的影响。要得到这类信息,就要了解硬盘接口的种类及硬盘控崐制器的有关命令格式和返回值。广泛使用的IDE/EIDE接口硬盘中有崐一些ROM信息,可以用相应的硬盘控制命令读出,其中有一部分信崐息是具有唯一性的,可以用来生成密钥。 一、软件注册器实现的软硬件基础 要实现针对某一台机器或者某一块硬盘的软件注册,首先要在崐相关的硬件设备上选择适当的特征数据,利用这些数据生成硬件代崐码。可供选择的数据有主板上的ROM信息和硬盘上的ROM信息等。其崐中硬盘的ROM信息使用相对方便。UCDOS的某些版本就使用电脑主板崐上的生产日期等信息来防止硬盘上软件的非法拷贝,造成主办升级崐后软件不能使用。 目前绝大多数PC的硬盘使用的是IDE/EIDE接口。这种接口的数崐据传输速度快,集成度高,在电脑中广泛使用。386以上的电脑中崐使用的多功能卡和主板上集成了这种接口,IDE接口控制器提供了崐一些控制命令来完成硬盘的读/写/校验等操作。其中有一条硬盘测崐试命令“0ECH”,我们可以用这条命令对硬盘控制器直接编程来崐得到硬盘的各种参数和信息。向IDE控制器送入IDE控制命令可以按崐照下面的步骤: 向端口3F6写入控制字节,建立相应的硬盘控制方式; 检验硬盘控制器和驱动器的状态(检测端口的第7和第6两位),崐如果控制器空闲而且驱动器就绪,即可输入命令; 完整的输入7个字节长度的命令块,一次写入端口1F1H-1F7H,崐不论是否需要,端口1F1H-1F6H对应的前6个字节的参数必须读出,崐端口1F7H的输出命令码为“0ECH”; 检测端口1F7H的第7和第3两位,如果控制器空闲且第3位置1,崐表示操作结束,即可读取结果; 通过端口1F0H读取100H字节到缓冲区; 再次读取端口1F7H,判断第0位是否为0,如果为0,表示命崐令成功,否则表示命令失败; 读出的256字节信息的主要内容如下: 偏移量 内 容 长度(字节) 02H 柱面数 2 06H 磁头数 2 08H 每磁道所含的字节数2 0AH 没扇区所含的字节数2 0CH 每磁道所含的扇区数2 14H 产品的序列号 20 2AH 硬盘缓冲区容量 2 2CH ECC校验码的长度 2 2EH 硬件修正号 8 36H 硬盘型号 40 在上表的内容中,产品的序列号等信息是具有唯一性的信息,崐可以在软件注册器中使用。 二、软件注册器实现的软件原理 软件注册器的原理和数字签名类似,可以从上述的数据中选择崐用来作为注册的硬件代码的数据,对这些数据进行加密变换(本文崐的例子中是把硬盘的出厂编号和硬盘类型的前十个字节进行异或运崐算)生成硬件代码后,提供给用户,由用户用这个硬件代码向作者崐注册,作者收到这个硬件代码和注册费后,对用户提供的硬件代码崐进行第二次加密变换,生成注册密码后交给用户。用户得到这个密崐码后,用注册器写入应用软件中,注册器写入时也可以再进行一次崐加密运算。 应用软件运行时,利用这个密码进行上述加密过程的逆运算得崐到硬盘的唯一性信息,和硬盘中的相应信息进行比较;或者用硬盘崐的唯一性信息进行上述加密过程而得到注册密码,和写入应用软件崐中的注册密码进行比较,由此判定注册是否正确,如果正确,就认崐为注册成功,否则认为没有注册,对应用软件的功能进行限制。 注册器、应用软件、作者和用户的关系及信息往来如下图: 硬件代码和注册费 软件注册器作 者 写入 硬 注册 件 密码 代 预设密码检验算法码 用户 应用软件 注册密码 注册密码生成器 本文从上述的思路出发,用C语言实现了一个软件注册器,在崐使用中效果很好,下面介绍这个注册器的一个简化版本。这个简化崐版本中的三个程序都在HP VL 5/100电脑上,用Borlandc 3.1版集崐成环境和小模式编译运行成功。 三、增强软件注册器的反破解能力 软件的加密和解密是不断发展的,软件注册器也要增强本身的崐抗破解能力,才能为保护软件作者的合法权益作贡献。以CCED注册崐版本为例,其注册信息存放在CCED50.DAT文件中,而CCED.EXE文件崐本身则用一种可执行文件压缩程序进行了压缩,这一点可以从CCED崐5.18版本中CCED.EXE文件头部的“LZ”两个字母及CCED.EXE中没有崐编译程序的相关信息来判断,大多数的可执行文件压缩程序,具有崐一种使压缩后的可执行文件不能使用相应的工具来解压缩功能。例崐如PKLITE的注册版本中的“E”参数。因此我们可以利用可执行文崐件压缩软件来压缩相应的应用软件和软件注册器,使软件具有初步崐的抗破解能力。 由于软件注册器的加密手段主要就在注册器生成的硬件代码和崐注册密码的生成还原算法上。根据CCED使用的注册器的生成的硬件崐代码分析,使用的办法可能也是利用IDE/EIDE接口硬盘的一些命令,崐得到硬盘的一些特定参数,如硬盘的类型、生产厂家和出厂序列号崐等,这一点可以从CCED的注册器在使用非IDE/EIDE接口的286级电崐脑上不能测试出硬盘的生产厂家等信息来验证。由于硬盘的出厂序崐列号具有唯一性,是用来生成注册用的硬件代码的最佳数据,而且崐这些数据存放在ROM中,读写时速度非常快,用普通的调试工具无崐法监控。即使能够对读写ROM数据的相应端口进行监控,找出读写崐的数据,也无法利用已注册的机器上信息对此进行仿真,如果进行崐仿真,则硬盘驱动程序中的硬盘控制命令将不起作用,使硬盘无法崐正常运转。 现在有用来破解软件狗加密软件的工具“打狗棒”,用这种工崐具可以对软件狗中从并行口中读数据的过程进行进行监控并仿真解崐密,因此也可能会有人用这种办法来解密软件注册器,把用一个合崐法的注册密码对应的硬盘特征数据,用仿真程序提供给注册器和应崐
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年3D打印技术的3D打印材料
- 2025年3D打印的仿生材料开发
- 烟酒店商铺经营承包合同(标准版)2篇
- 2025行业供应链优化路径研究
- 中国银行2025西安市数据分析师笔试题及答案
- 农业银行2025固原市数据分析师笔试题及答案
- 建设银行2025白城市秋招笔试创新题型专练及答案
- 建设银行2025石嘴山市秋招群面模拟题及高分话术
- 交通银行2025怀化市秋招笔试EPI能力测试题专练及答案
- 国有土地使用权置换合同范本2篇
- 地坪硬化合同(标准版)
- 2025-2026学年人音版(简谱)(2024)初中音乐七年级上册教学计划及进度表
- 养生艾灸直播课件
- 2025年徐州市中考语文试题卷(含答案及解析)
- 云南省2025年校长职级制考试题(含答案)
- 幼儿园美术教师个人工作计划范文
- 2025年中国邮政集团有限公司安徽省分公司社会招聘笔试参考题库附答案解析
- 2023年TBNK淋巴细胞检测在健康管理中的应用专家共识完整版
- 牛只生产性能与收益评估方案
- 统编版八年级上册道德与法治 8.3.2《营造清朗空间》课件
- 2025拖车租赁协议
评论
0/150
提交评论