欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

明明白白用DEBUG清除CMOS密码

程序员文章站 2022-07-09 09:22:55
明明白白用DEBUG清除CMOS密码今天一位朋友因要更改CMOS设置而又忘记了密码来找我,这种小儿科的问题自然是难不到我。坐到朋友的电脑前,首先进入系统,在命令行状态下运行DEBUG命令后输入如下命令-o 70 xx(... 09-04-21...
今天一位朋友因要更改cmos设置而又忘记了密码来找我,这种小儿科的问题自然是难不到我。坐到朋友的电脑前,首先进入系统,在命令行状态下运行debug命令后输入如下命令
-o 70 xx(回车)
-o 71 xx(回车)
-q (回车)
重新启动计算机后顺利进入cmos,不用再输入密码。
命令说明:
1、其中xx为00到99之间的任意数值;
2、横线(-)为debug命令提示符;
3、-后面为字母o,为debug的o命令,而不是数字零;
其命令格式为,-o 端口号 一字节数据 (表示要将一字节的数据输出(写入)到指定端口)
4、q为debug命令中的退出命令;
5、70和71分别表示端口号,必须配对使用,且先后顺序不能变动。
6、进行如上操作后,重新启动计算机,如果进行cmos设置时仍有密码,说明cmos中的数据没有被破坏,此时可再运行debug,使用类似的o命令,不过应将70和71后面的数据变化一下。
正准备起身走的时候,朋友发话了(这位朋友也是位好学之人哪),为什么输入这这些命令之后就行了呢?非要我给他解释一番,这下可把我给难住了,虽然很早就从一些报刊和网站上看过用debug清除cmos密码的方法,也实践了很多回了,但一直都不清楚具体的原因,且也没有从哪里看到过介绍其关于原理方面的文章,于是答应朋友回来后查资料并给他答复。
回来后查阅相关资料,终于从一本老古董的dos书刊上找到了,弄明白了为什么以上操作可以清除cmos密码,现在写出来与大家分享。
cmos的寻址规则是:cmos中有静态的ram,其容量上百至千字节,从0开始编地址,它不是内存的一部分,要访问时必须进过端口进行,其端口号为70和71。要通过这两个端口访问cmos中上百字节的数据,不可能直接访问(访问包括读和写)。因此设计者规定访问cmos的办法是:先向端口70写入需要访问的cmos中ram的单元地址,再通过端口71进行访问。
破坏的原理是:系统bios自检时要检查cmos中的数据是否有效,有效的标准是计算cmos中所有数据的字节累加和是否为0,为0表示有效,不为0,则表示cmos中的所有数据无效,正常的cmos设置程序在改变cmos中的值后都要计算cmos中的字节累加和是否为0,如果不为0,则自动进行调整使之为0。破坏的办法是直接写入一随机数到cmos的某一单元中,而不调整字节和,只要写入的数据与原有数据不同,则下次重新启动时cmos的字节累加和肯定不为0,因而其中的数据(包括密码数据)将无效,从而达到破坏cmos密码的目的。
提示:如果是错误的cmos设置导致系统无法工作且有进入cmos和进入系统密码,则比较有效的办法就是放电了。