怎样用CMOS加密软件防止非法拷贝

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

       我们运行软件时经常会遇到以下情况,有的软件在一台机器上安装后就不能将其拷贝到其他机器上运行;有的软件甚至连原来机器的软、硬件配置改变后也无法再次运行。其实这些情况有的是利用CMOS对软件加密来实现的。安装软件时,通过安装程序把软件安装到硬盘上,同时把当前机器的CMOS信息保存到安装软盘上,也就是相当于保存了密钥。等到以后在硬盘上运行该软件时,软件的主程序会把记录在安装盘上的密钥与正在运行该软件机器的CMOS信息进行比较,如果完全相同,则允许软件继续运行,否则终止软件运行。国内的许多软件都是采用此原理进行加密的。
  由于CMOS具有比磁盘更好的隐蔽性和正常DOS下的不可访问性,所以利用CMOS对软件进行加密是防止软件非法拷贝的一种方法。以下将重点介绍通过C语言利用CMOS对软件进行加密防止非法拷贝的实现方法。

一、CMOS数据格式
  CMOS是互补金属氧化物半导体的缩写,其本意是指制造大规模集成电路芯片用的一种技术或用这种技术制造出来的芯片。在这里是指计算机主板上的一块可读写的RAM芯片。它靠系统电源和后备电池供电,系统掉电后内容不会丢失。它存储了机器软、硬件配置的基本信息,共有128个字节。系统在上电引导时要读取CMOS信息来初始化机器各部件状态。

二、加密原理
  如果想要限定软件只在固定的机器上运行,可以在软件的安装时把当前机器CMOS中的内容读出,作为密钥以文件的形式保存到安装盘上。在软件运行时自动检查当前正在运行程序机器的CMOS中内容是否与安装盘上保存的密钥相同。如果检查结果不正确,则证明已经不是原来安装软件的那台机器,运行的软件不是安装到硬盘的,是非法拷贝过来,必须终止软件运行,从而达到了加密软件防止非法拷贝的目的。
  在CMOS的128个字节单元中,00H-0FH字节单元中的数据随机性太强,不易作为密钥。1BH~2DH,34H~3FH,40H~7FH是CMOS的保留单元。不同的BIOS版本对此保留单元设置不一样。根据笔者的观察,AST系列原装机BIOS对此单元填充数据为0。COMPAQ系列原装机和采用AWARD、AMI等BIOS的机器对此单元均填充不同的数据。2EH、2FH单元中存放的是10H~2DH单元中各字节的校验和。系统每次引导时要读取CMOS信息,同时还要检查10H~2DH单元中的各字节的校验和是否与2EH、2FH单元中的数据相同,不同则提示CMOS中数据有错。因涉及到保留单元,不建议作为密钥。30H~33H单元内容无法区分不同配置的机器,可以不用考虑。
只有CMOS的10H~2DH单元中内容涉及到软盘、硬盘、内存、显示卡等最基本的硬件配置。实际应用中软、硬件配置完全相同的机器几乎是不存在的,所以可以采用CMOS中的内容作为密钥进行检查,完全可以做到加密软件,防止对软件的非法拷贝。

三、实现方法
  在计算机系统中,对CMOS中数据的读写是通过两个I/O端口来实现的,其中,端口70H是一个字节的只写端口,用它来设置CMOS中的数据地址;而端口71H是用来读写端口70H设置的CMOS地址中的数据单元字节内容。所以在读写CMOS数据时,可以通过70H端口写入一个地址值,再通过71H端口读出一个数据,对软件的加密就是通过这个来实现的。
  在利用CMOS加密软件的过程中,一般需要编制两段程序:一段程序的功能为在安装程序中保存CMOS内容作为密钥;另一段程序的功能为在软件主程序中检测密钥是否存在及正确,在每次运行该软件时都调用此段程序。
本文采用的密钥检查方法是“校验和法”。所谓校验和法是指先对全部信息或部分信息计算出一个累加和,作为密钥存放在安装盘上。当软件运行时对所检查信息部分再计算一个累加和,两者进行比较,一致时才能正确执行。一旦发现不一致,则可作一些处理,终止软件运行。因为一台机器配置改变,校验和必然发生变化。
  程序1:将CMOS中10H~2DH单元中的数据的校验和作为密钥写入到安装软盘上的某个文件中。使用时将此段程序嵌入到软件的安装程序中。
/*JM1.C*/
#include"stdio.h"
main()
{
unsigned int i ,csum=0;
FILE *fp;
for (i=0x10;i<=0x2d;i++)/*求得安装程序机器的CMOS中校验和*/
{
outportb(0x70,i);
csum+=inportb(0x71);
}
if ((fp=fopen("A:/MIMA.DAT","wb"))==NULL)/*打开密钥文件*/
{printf ("请打开写保护/07");
exit (0);
}
fwrite (&csum,2,1,fp);
fclose(fp);
}
运行结果:在A盘上产生一个名为MIMA.DAT的文件,该文件记录了程序安装时产生的密钥。
  程序2:检查当前机器CMOS中10H~2DH单元中的校验和与保存在安装软盘上的密钥是否相同。使用时将此段程序嵌入到软件的主程序中。
/*JM2.C*/
#include"stdio.h"
main()
{
unsigned int i,csum=0;
unsigned int fsum;
FILE *fp;
for(i=0x10;i<=0x2d;i++)
{
outportb(0x70,i);
csum+=inportb(0x71);/*求得运行程序机器的CMOS中的校验和*/
}
if((fp=fopen("A:/MIMA.DAT","rb"))==NULL)
{printf("请插入钥匙盘");
exit(0);/*安装盘不存在,终止程序运行*/
}
fread(&fsum,2,1,fp);
if (fsum!=csum)/*把当前机器CMOS中校验和与密钥进行比较*/
{printf ("您不是合法用户,请您购买正版软件!/07");
exit(0);/*终止程序的运行,可进一步做处理*/
}
else
{printf ("您是合法用户,欢迎使用!");
}
fclose(fp);/*继续运行主程序*/
}
  运行结果:如果软件是通过安装程序安装到机器上的,则提示“您是合法用户,欢迎使用!”,继续运行程序;如果软件是通过非法拷贝到机器上的,则警铃提示“您不是合法用户,请您购买正版软件!”,并终止该程序的运行。
(其中JM1.C、JM2.C是用TUBRO C V2.0编写,链接生成EXE文件,在UCDOS 6.0下调试通过。)

四、结束语
  最后需要说明的是,利用CMOS进行软件加密的实现方法不同,在实际应用中要根据具体情况来决定简单与复杂。通常可考虑以下几个方面的因素:
  1. CMOS密钥的难易程度。检查的CMOS数据越多,对机器的软、硬件配置检查越严格。
  2.CMOS密钥检查方法。如果能做到逐个字节的检查最为准确。
  3.~CMOS密钥保存方法。如果以文件的形式存放在磁盘上可能容易被发现破解,可考虑保存到软盘的隐含扇区,如引导扇区、目录区、文件分配表区等;或者保存到硬盘的隐含扇区,如主引导记录、分区表等,同时也就需要每次启动时读安装盘;或者保存到CMOS的保留单元中。这些方法都可以增加CMOS密钥的破译难度,提高软件加密的可靠性。
  4.结合在安装盘上做指纹技术,利用INT13H格式化出额外磁道和特殊扇区,将CMOS密钥保存到额外磁道的特殊扇区中,可以大大地增强安装盘的防拷贝能力,进一步对软件加密。


表1 CMOS数据格式
地址       说明       地址       说明
00H        秒数       10H        软盘驱动器类型
01H 秒数报警 11H 保留
02H 分数 12H 硬盘驱动器类型
03H 分数报警 13H 保留
04H 小时数 14H 设备字节
05H 小时数报警 15~16H 基本内存容量,单位K
06H 星期数 17~18H 扩充内存容量,单位K
07H 日期 19H 硬盘驱动器0类型
08H 月份 1AH 硬盘驱动器1类型
09H 年份 1B~2DH 保留
0AH A寄存器状态 2E~2FH 10-2DH校验和
0BH B寄存器状态 30~31H 扩充内存容量,单位K
0CH C寄存器状态 32H BCD码世纪值
0DH D寄存器状态 33H 信息标志
0EH 诊断状态字节 34~3FH 保留
0FH 停机状态字节 40~7FH 保留

破解cmos密码   要说密码。首先就是CMOS密码了。CMOS(本意是指互补金属氧化物半体存储器,是一种大规模应用于集成电路芯片制造的原料)是电脑主板上的一块可读写的RAM芯片,主要用来保存当前系统的硬件配置。CMOS RAM芯片由系统通过一块后备电池供电,所以无论是开关机状态中,CMOS的信息都不会丢失。既然CMOS的信息不会丢失,那么它的安全性应该是很好了。所以,我们还是先来设置一下CMOS密码吧。   设置 阅读详情

相关推荐

BIOS密码破解与重置全攻略:从原理到实践

BIOS密码是计算机硬件层面的重要安全机制,存储在主板CMOS芯片中,用于防止未经授权的系统修改。其验证过程发生在操作系统加载之前,通过中断启动流程实现硬件级保护。不同品牌主板采用差异化的存储方案,如戴尔绑定主板序列号、惠普使用TPM加密等。在忘记密码或获得二手设备时,可通过CMOS放电、品牌后门密码等方案重置。企业级设备可能需要专用工具如Dell BIOS Password Generator或HP BIOS Configuration Utility。操作时需注意法律边界,仅限自有设备或授权场景。合理使

weixin_33646989的博客 253

BIOS加密与解密

BIOS加密与解密 一、概述 关于计算机密码,许多人认为那是计算机高手的事,其实不然,加密并不是高手的专利。且让我们先看看计算机中有哪些常见密码: 1、 屏幕保护程序密码; 2、软件和文件权限密码; 3、网络方面的权限密码; 4、BIOS权限密码; 以上密码要数“屏幕保护程序密码”的设置和解除最容易;文件和网络方面的密码破解最难;BIOS密码最值得计算机用户探究。 BIOS 基本输入/输出系统。BIOS设置俗称“CMOS设置”,即用固化在主板上的ROM中的工具程序BIOS去修改计算机的各项参数,以影响计算机

weixin_45617600的博客 3347

瑞萨PG-FP6量产编程器:从硬件连接到安全烧录的全流程指南

在嵌入式系统开发与生产中,微控制器(MCU)的程序烧录是连接软件与硬件的关键环节。其核心原理是将编译后的机器码通过特定协议写入芯片内部的非易失性存储器(如Flash)。这项技术的价值在于,它确保了产品的功能得以实现,是产品从研发原型转向规模化、可靠生产的基石。在消费电子、工业控制和汽车电子等广泛应用场景中,高效、稳定且安全的批量烧录方案至关重要。本文以瑞萨PG-FP6专用量产编程器为例,深入解析其作为硬件级解决方案如何实现高效、稳定、安全的烧录流程。通过详解其硬件接口设计、独立运行模式,并结合FP6 Man

weixin_34265814的博客 442

最实用最简单,两种清除cmos密码的方法

最近公司搬家找出来一个之前的电脑,打开之后需要dos密码,由于密码设置的人已经离职,现在是忘记cmos密码无法进入bios。开机之后直接出现密码界面,这个问题该怎么处理呢?今天小编就来教大家最简单的两种清除cmos密码。 一、物理放电法 1、扣电池   目前的主板大多数使用纽扣电池为BIOS提供电力,也就是说,如果没有电,它里面的信息就会丢失了。当它再次通上电时,BIOS就会回到未设置的...

Jum的博客 3万+

服务器数据防泄漏,深信达-MCK

一则物流公司“内鬼”把物流系统账号租给不法分子,不法分子侵入系统盗取公民个人信息层层倒卖的新闻。近日, 河北邯郸警方成功侦破一起侵犯公民个人信息的跨省系列案件。经初步侦查,该团伙涉及买卖公民个人信息1300余万条,非法获利120余万元。 经过精准研判,周密部署,8月27日,民警将沙河籍男子张某、高某抓获,9月3日,将河南籍男子马某抓获归案。经审讯,张某、高某、马某对租用快递查询账号贩卖公民信息的犯罪事实供认不讳。经进一步审讯深挖,犯罪嫌疑人供述曾租用武安市某快递公司员工任某内部查询账号,非法获取公民个

cnsinda_htt的博客 715

计算机网络基础

计算机网络基础 2.21 周二 早上 1、CMOS 半导体存储器 硬件系统 BIOS 基本I/O系统 软件系统 BIOS 是存储在CMOS中 2、电池:维持主板上的初始信息 3、所有有密码的东西都留有后门,预留的 Windows密码——BOIS密码 第三方工具破解¬----抠电池(放静电) 4、磁盘分区(划分存储空间):把大硬盘划分为小硬盘的过程 5、MBR分区表(主引导记录)

qw311113qin的博客 3434

TPIC7710EVM评估板深度解析:从硬件设计到GUI软件实战指南

在电机驱动系统开发中,评估板是连接芯片选型与产品落地的关键桥梁。其核心原理在于通过精心设计的硬件电路和配套软件,将复杂的芯片寄存器配置和功能验证过程图形化、模块化,从而大幅降低开发门槛和技术风险。这种评估工具的技术价值在于,它允许工程师在投入正式设计前,安全、直观地验证芯片在真实负载下的性能,理解数据手册中的抽象参数,并快速排查潜在问题。其典型应用场景包括汽车电子(如电子驻车制动EPB)、工业控制等对安全性和可靠性要求极高的领域。本文以德州仪器(TI)的TPIC7710EVM评估模块为例,深入剖析其双电源域

weixin_30875157的博客 313

论企业数据安全与商业机密的保护

当今的企业,数据安全已经被提高到了一个很高的程度,防止商业机密的的泄露是电脑技术员的一个重要工作,我现在浅谈下对企业数据安全的一些个人见解,欢迎大家补充或与我交流!1、USB端口和软驱禁止使用并设置好CMOS密码,防止有人利用U盘或移动硬盘等拷贝数据2、严格权限管理,不随便给员工上网的权限,防止有人利用互联网或其它网络软件传输数据3、严格用户管理,给不同的员工设置不同的用户权限,防止

网络网管网站技术备忘录----IT农民工 1380

BitLocker恢复密钥丢失?从原理到实战的完整解锁与系统重生指南

磁盘加密技术是数据安全的核心防线,它通过对存储设备上的数据进行编码,确保未经授权的用户无法访问。其原理主要基于加密算法(如AES)与密钥管理机制,在操作系统启动前或数据读写时进行实时加解密。这项技术的核心价值在于防止设备丢失或被盗后的数据泄露,尤其对于笔记本电脑和移动设备至关重要。典型的应用场景包括企业办公电脑、存有敏感信息的个人设备以及符合合规性要求的行业。当使用Windows系统自带的BitLocker加密功能时,若因硬件改动、系统更新等触发保护机制,用户可能会面临需要输入恢复密钥才能启动的困境。本文聚

weixin_34006965的博客 463

U盘一插,客户名单就没了?如何有效禁用电脑USB端口,这几层得搞对

有家公司销售离职,用私人 U 盘把三年客户名单拷走,回头把电脑里的原件删了个干净,报复老板。老板发现时名单早被发去了竞品。这事的出口不是网络,是那个物理 USB 口——逻辑层的监控、加密都拦不住"文件先落进 U 盘再删本地"。堵住它,得把 USB 端口管住。但"禁用 USB"四个字,很多人做错了。

chengxuyuan77的博客 175

计算机病毒结构及技术分析

计算机病毒是一种特殊的程序或代码段,它寄生在一个合法的程序或环境中,并以某种方式潜伏下来,伺机进行感染和破坏。

孤的博客 7161

艳门照事件折射数据隐私,怎样加强个人电脑的安全性

近日在网络中炒的沸沸扬扬的艳门照事件,在网民群体中引发了轩然大波,据说很可能是陈冠希将手提电脑交给电脑公司维修时泄露出去的。由此事件导致了很多网民担心电脑中存在的或被消毁的数据是否会泄密?以及废弃硬盘中的数据问题是否会造成不必要的麻烦? 联网数据安全 如今随着电脑办公的网络化,导致很多电脑用户都由局域网转变成为互联网用户,那么其电脑中资料的安全也因艳门照事件而引发了新一...

weixin_34061482的博客 802

Windows 10专业版与纯净版深度对比:如何选择最适合你的系统?

系统选择本质是技术需求与资源约束的平衡艺术。对于承载关键业务的服务器,专业版的官方支持无可替代;在个人娱乐场景,纯净版的轻量化优势显著。常用软件兼容性测试硬件驱动稳定性验证网络安全防护能力长期维护成本评估最终,无论选择哪种系统,定期备份数据、保持系统更新、安装可信安全软件才是保障数字资产安全的基石。技术选型没有标准答案,适合自身场景的方案才是最优解。

mmoo_python的博客 1612

边缘AI工程实战:从物理约束到稳定部署的五道生死关

边缘AI并非简单将云端模型轻量化部署,而是面向算力受限、功耗严苛、环境多变的真实硬件场景,对人工智能全链路进行重构的技术实践。其核心原理在于协同优化模型结构、内存带宽、热设计、实时调度与固件韧性,在物理定律约束下达成确定性性能。技术价值体现在降低端侧延迟抖动、提升三年无故障运行率、保障数据本地化处理安全。典型应用场景覆盖工业质检、农业物联网、电力巡检等无人值守现场。本文聚焦Jetson Orin Nano、RK3588、ESP32-S3等主流平台,深入解析模型量化感知训练、ION零拷贝内存、RT-Linux

2337

电脑开机卡BIOS?3招快速解决启动故障

计算机启动过程涉及BIOS自检、硬件检测和系统引导加载等多个关键环节。当POST(Power-On Self-Test)过程中检测到异常时,系统会中断启动流程并显示错误信息。理解启动原理有助于快速定位故障,常见的硬件连接问题、BIOS设置错误或引导损坏都会导致启动失败。通过重新插拔内存/硬盘、恢复BIOS默认设置或使用bootrec命令修复引导记录等工程实践方法,能有效解决90%的启动故障。这些技能对系统维护人员尤为重要,特别是在处理老旧电脑或突然断电导致的启动异常时。掌握基础的硬件检测和UEFI引导修复技

掬水月在手,弄花香满衣 400

【信息科学与工程学】计算机科学与自动化——第八十四篇 C++分布式软件高并发/高可用算法01

4. 提交:协调者选择提交时间戳(>所有读时间戳),两阶段提交:a) 写意图预提交到所有参与者,b) 参与者持久化后确认,c) 协调者决定提交,异步清理意图。:客户端请求发送到协调节点,协调节点根据路由转发到主分片所在节点。Span有父子关系。1. 索引文档:客户端发送PUT请求到协调节点,协调节点路由到主分片节点,主分片写入本地,然后并行复制到副本分片,等待确认后响应客户端。3. 搜索:客户端发送搜索请求到协调节点,协调节点广播到所有相关分片,每个分片执行查询,返回结果,协调节点合并、排序、分页后返回。

weixin_49199313的博客 1042
上一篇: [转载]大学生创业:一个硬件网站站长自述创业经历
下一篇: 留言本
fasttalk
博客等级 码龄24年 95粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值