破解BIOS密码的debug法
来源:互联网 发布:比特精灵for mac版 编辑:程序博客网 时间:2024/05/22 06:06
实际上我们是通过BIOS这个程序,去设置CMOS里的参数的。
CMOS是一块芯片,集成在主板上,里面保存着重要的开机参数,而保存是需要电力来维持的,所以每一块主板上都会有一颗纽扣电池,叫CMOS电池。
CMOS里存放着参数,要设置它,我们必须通过程序把设置好的参数写入CMOS,所以,就利用BIOS程序来读写
电脑的BIOS设置一般是通过70H和71H两个端口进行访问和更改的,端口70H是一个字节的地址端口,用来设置CMOS中数据的地址,而端口71H则是用来读写CMOS地址中的数据单元内容,我们对这两个端口进行错误的赋值,使设置全部清空,恢复成出厂设置。 因此可以用光盘启动计算机,到DOS下输入以下命令: 1进入DOS命令状态。 2执行下列命令。 进入Debug c:\>Debug Debug标志符 执行向端口70写入数据,执行向端口71写入数据 -o 70 16 -o 71 16 退出Debug -q 利用Debug清除BIOS密码1 -o 70 2E -o 71 0 -q 利用Debug清除BIOS密码2 -o 70 FF -o 71 17 -q 利用Debug清除BIOS密码3 -o 70 10 -o 71 0 -q 利用Debug清除BIOS密码4 -o 70 FF -o 71 17 -q 利用Debug清除BIOS密码5 -o 70 11 -o 71 23 -q 利用Debug清除BIOS密码6 -o 70 10 -o 71 11 -q 任选其一试试看。
更改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后面的数据变化一下。
具体的原因
回来后查阅相关资料,终于从一本老古董的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和进入系统密码,则比较有效的办法就是放电了。
- 破解BIOS密码的debug法
- Debug清除BIOS密码的命令
- 破解ThinkPad R50 BIOS的超级密码
- 装机时的BIOS密码破解
- BIOS密码的去除与破解
- 破解BIOS开机密码的方法
- 破解BIOS密码
- BIOS密码破解
- bios 密码破解
- 破解BIOS密码
- 破解BIOS密码
- BIOS密码破解
- 【BIOS】debug命令清除bios密码
- BIOS密码破解及清除
- 通过Debug命令行清除BIOS Setup密码
- DOS命令(7) BIOS密码破解
- thinkpad x200 bios 超级密码破解方法
- 破解DELL BIOS开机密码,拔电池放电不好使
- 0035算法笔记——【分支限界法】布线问题
- mysql 忘记root 密码 找回
- 判断单链表是否存在环,判断两个链表是否相交
- hdu A simple problem
- android.mk的用法与实例
- 破解BIOS密码的debug法
- Java.Web - Http协议初步接触
- Ubuntu 12.04 编译Android 4.2 源码
- munmap_chunk(): invalid pointer
- error C2440 “static_cast” 无法从“void (__thiscall C* )(void)...
- 如何判断两个链表相交及找到第一个相交点
- Android进阶:性能优化篇
- Java.Web - JSP文件上传,Servlet接收文件
- 云存储——Kanbox