再谈CMOS密码

对于CMOS而言,相信大家已经不再陌生。但就CMOS密码而言,我想真正了解的人就不太多了,所以我们就做了些实验,研究了一下。以前已经有不少人讨论过了,但我觉得还是有再谈的必要,下面就把其中合适的部分拿出来,以飨各位。

在谈密码之前,还是先说说什么是CMOS(本文所言CMOS均针对Award而言)。CMOS实际上存放的是计算机的系统时钟和硬件配置方面的一些信息,供系统引导时读取;同时初始化计算机各个部件的状态,总共有128个字节,存放在RAM芯片中。

好了,先看一个例子,用来向大家说明一下CMOS的一些结构,下面这128个字节就是我的CMOS的内容:

00000000H 30 00 FF 00 39 00 FF 00 12 00 FF 00 01 00 18 00

秒 秒报警 分 分报警 小时 时报警 星期 日

00000010H 11 00 98 00 26 00 02 00 70 00 80 00 00 00 00 00

月 年 寄存器A 寄存器B 寄存器C 寄存器D 诊断 下电

00000020H 40 00 7E 00 F0 00 03 00 0F 00 80 00 02 00 00 00

软驱 密码域 硬盘 未知 设备 基本内存 扩充

00000030H 7C 00 2E 00 00 00 7F 00 15 00 86 00 00 00 00 00

内存 硬盘类型 未知 密码数据位 未知

00000040H 00 00 00 00 00 00 00 00 00 00 00 00 E2 00 22 00

未知

00000050H 0F 00 FF 00 FF 00 E1 00 22 00 3F 00 08 00 59 00

未知

00000060H 00 00 7C 00 19 00 80 00 FF 00 FF 00 FF 00 FF 00

未知 世纪值 未知

00000070H 7D 00 81 00 AA 00 0F 00 39 00 9B 00 E8 00 19 00

未知

上述的内容参考了其他资料,所以不一定完全正确,不过38H-3AH的密码数据倒可以肯定,所以接下来就切入正题,谈一谈CMOS的密码,由于我能找到的均为Award的BIOS,所以以下的结论均针对Award的CMOS,并且在以下的主板及相应的BIOS上验证通过。(本文一下数值均为16进制)

主板名及型号 BIOS版本 BIOS日期

Aopen(建基)AP58 R1.50c 1998-07-13

Aopen(建基)AX5T R1.80 1998-07-30

EPoX(磐英)MVP3E 未知 1998-08-03

EPoX(磐英)P2-112A 未知 1998-09-16

FIC(大众)PA-2007 v1.0A 1997-06-25

在38H-3BH这四个字节中,由于39H和3BH这两个字节一直为00H,所以就略过,那么CMOS密码的关键就集中到了38H和3AH这两个字节上。先介绍一点Award的密码规则,Award允许一位至八位密码,每一个字符的范围由20H-7FH,也就是由空格到ASCII码的127号。想必大家已经发现了,八个字符要放到两个字节中去,好象不压缩一下是不行的。的确,Award是将其压缩了,但是不是普通的压缩方法,我想Award另有将其加密的想法,因为在CMOS中空位还很多,要想放八个字节看来是没有什么问题的,不过这么裸露的密码就更加没有什么用处了。通常的压缩方式有无损压缩,如zip,arj等,或者是有损压缩,象mpeg,jpeg等。但是对这么几个字节,这些方法就没有什么用武之地了,而且压缩过的东西,应该是可以还原的,否则压来压去就没有什么意义了。不过Award的方法就不同了,他不仅仅进行了超级的有损压缩,而且这种压缩是不可还原的,下面就给出他的加密压缩方法(以下数值,运算均基于16进制):

假如有一密码,八位,记为:ABCDEFGH(每一位的取值范围为20H-7FH),将其按下列公式运算:H+4*G+10*F+40*E+100*D+400*C+1000*B+4000*A ,将结果按由低到高保存到:H1,H2,H3,字节中,然后将H2保存到地址:3AH中,将H1和H3的和保存到38H中。如果密码不足八位,以此类推。下面举一实例:

我的密码为:r*vte,ASCII码为:72H、2AH、76H、74H、65H,按公式运算得:72*100+2A*40+76*10+74*4+65=8615,于是H1=00H,H2=86H,H3=15H,所以3AH的值为86H,38H的值为15H。

看来密码就这么简单,在你每次输入密码的时候,BIOS将其算算,再与CMOS中的值比较一下,如果一样就放行,否则免谈。过程就是这样,不过还是有些问题要说明,先算算看,两个字节可以表达的密码可以有多少种:164=65536种,而八位密码,每一位有96种选择,则可以表示的密码有:968≈7.2×1015 种,所以理论上说,每一个密码,都可以找出大约1011这么多个可以起相同作用的密码。但是事实上并不是大家都是八位的密码,或许没有大得这么吓人,不过也挺多的,就如我那个密码,光与他相同功能的五位密码就有二十五万多个,而六位,七位,八位的更多,数量不详,因为从来没有把他算完过,时间太长了,耗不起。所以我随便把我们研究用的那个小程序附上了,可以搜索Award的CMOS密码,大家也可算算看。

CMOS的密码谈的也差不多了,也该停笔了。不过为了减少大家的疑问,再多谈几句。现在的BIOS都比较先进了,在CMOS的设置中,大多有User和SuperVisor密码的设置,我这里讨论的地址为User的,至于SuperVisor的,自各儿研究吧,因为密码这个东西,说得太明,大家都没趣了,对不。好了,就此打住。

时间: 2024-08-03 09:28:35

再谈CMOS密码的相关文章

如何清除cmos密码

"CMOS密码"就是通常所说的"开机密码",主要是为了防止别人使用自已的计算机,设置的一个屏障. "CMOS密码"破解方法很多,主要有以下几种: 一.更改硬件配置 当丢失CMOS密码时,你可以先试着改动机器的硬件后再重新启动,因为启动时如果系统发现新的硬件配置与原来的硬件配置不相同,可能会充许你直接进入CMOS重新设置而不需要密码.改动硬件配置的方法很简单:比如拔去一根内存条或安装一块不同型号的CPU(当然要主板支持).更换一块硬盘等. 二.建立

妙用DEBUG清除CMOS密码

打开机箱,找到主板上的电池,将其与主板的连接断开(就是取下电池喽),此时CMOS将因断电而失去内部储存的一切信息.再将电池接通,合上机箱开机,由于CMOS已是一片空白,它将不再要求你输入密码,此时进入BIOS设置程序,选择主菜单中的"LOAD BIOS DEFAULT"(装入BIOS缺省值)或"LOAD SETUP DEFAULT"(装入设置程序缺省值)即可,前者以最安全的方式启动计算机,后者能使你的计算机发挥出较高的性能正版xp系统下载. 妙用DEBUG清除CMO

除了跳线短接以外的五个清除CMOS密码的命令行

  如果你忘记了进入CMOS设置程序的密码,除了可以在主板上使用跳线短接清除的方法外,还可以使用软件清除的方法,本文整理了在DOS下清除CMOS密码的五种方法. 打开机箱,找到主板上的电池,将其与主板的连接断开(就是取下电池喽),此时CMOS将因断电而失去内部储存的一切信息.再将电池接通,合上机箱开机,由于CMOS已是一片空白,它将不再要求你输入密码,此时进入BIOS设置程序,选择主菜单中的"LOAD BIOS DEFAULT"(装入BIOS缺省值)或"LOAD SETUP

再谈数据外泄和数据库安全

本文讲的是再谈数据外泄和数据库安全,2011年末国内最大程序员社区CSDN的数据库泄露事件横扫整个中国互联网,引起了亿万网民的关注.怀疑互联网的安全性, 似乎一夜之间数据外泄和数据库安全成为流行.其实不然,数据外泄从05年开始就在国外爆发,典型代表为美国的数千万信用卡数据失窃事件. 从历史上看,往往一个大的事件会引起人们的警醒,甚至一定程度会影响到法律法规的制订和全员对安全意识和手段的提高.面对此类安全事件,我们需要的不是过多的责难,而是不断改进的问题本,站在信息系统安全高度来看待这些层出不穷的

再谈IO的异步,同步,阻塞和非阻塞

原本转过一个<六种Socket I/O模型幽默讲解>,里面用比喻的方法讲解各种IO,但说到底那个时候我对同步异步这些还是只知其表.还未能完全理解异步和同步,现在觉得清晰一些了.总结一下. 前提概要: IO的过程: 整个IO的过程其实是应用发起IO的请求,到应用获取到IO请求数据的中间过程. 这个中间,其实主要的时间就是系统准备数据的过程.这也是异步技术的优化所在. 对系统调用的理解: 首先,我们要明确一点.IO的操作属于一种系统调用.也就是应用在运行中,进入到内核代码来执行某些重要的操作. 其

再谈ASP防止SQL Injection漏洞的问题

问题 再谈ASP防止SQL Injection漏洞的问题 /**作者:慈勤强Email: cqq1978@Gmail.com*/ 关于Asp的SQL Injection预防问题,似乎已经没什么可说的了.在我做的Asp的项目里面, 都是用自己写的函数来处理客户端提交进来的数据,我的Blog里面也贴过这个函数. 具体可以参考http://blog.csdn.net/cqq/archive/2004/09/23/113786.aspx 不过,从朋友的留言和网上其他的一些讲如何防范SQL Injecti

用户交互设计:再谈人机交互中的设计隐喻

文章描述:再谈人机交互中的设计隐喻. 上篇文章<人机交互中的设计隐喻-由Mac的文件替换引出来的话题>发出来以后收到了各种各样的反馈,我索性再写一篇续文,算是集中答复吧. 用户习惯 在所有的反馈中,"用户觉得Windows的做法更好用,所以理应这样设计"的说法可谓最多.那么我们就来看一下,为什么有人会觉得Windows的做法更"好用". 我们来看两个例子. 银行里面用的系统-就是柜台后面业务人员用的那个-基本上还是字符界面,没有漂亮的图标和窗口,甚至可能

网页设计经验分享:再谈网易首页的改版

之所以说再谈网易首页的改版,是因为去年临近奥运会的时候,网易首页做过一次改版,奥运会之后网易首页做了一下小调整,调整后的首页让人感到很困惑.今天在没有任何预告的前提下,网易又上线了新首页. 其间有个小插曲是,新首页刚上线后,很多地区突然无法访问网易首页,我访问的时候是服务器返回500. 网易就此次改版的说明是:"本次改版从整体到细节都有一个质的飞跃,新版继承了网易一贯简约.大气.包容的设计品质,达到以用户为中心提高用户体验.促进频道发展的改版设计目的." 此次改版促进频道发展的目的似乎

走近VB.Net(二) 再谈函数调用

函数 走近VB.Net(二) 再谈函数调用 在VB6中如果你想调用一个对话框,首先你知道要使用vb内置的MsgBox函数,你甚至于使用API,大部分人乐于使用API.如下:Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wTy