使用 DOS 的 debug 命令清除 BIOS 密码

使用 DOS 的 debug 命令清除 BIOS 密码

Coast23

原理

  • BIOS 是固化在主板上一个 ROM 芯片中的程序, BIOS 的各项设置都保存在一个名为 CMOS 的 RAM 芯片中. CMOS 由主板上的纽扣电池供电, 以保证关机时不会丢失信息. 这也是为何可以通过抠下再重新放入纽扣电池来重置 BIOS 设置的原因.

  • 计算机通过特定的 I/O 端口与硬件设备通信, 其中, 70H71H 用于访问 CMOS 数据. 端口 70H 作为地址端口, 用于指定要访问的 CMOS 存储单元地址; 端口 71H 则是数据端口, 用于读取或写入由端口 70H 指定地址的数据.

  • BIOS 对数据存在 checksum 校验机制, 如果校验失败, BIOS 会采取默认的异常处理 – 放弃当前设置, 使用预设的出厂默认设置, 由于默认设置没有 BIOS 密码, 所以就能成功绕过用户设置的密码.

如何让 checksum 校验失败呢? 只要xjb修改 CMOS 中的数据即可, 这可以通过 DOSdebug 命令实现. 具体来说, 可以执行如下两行命令:

-o 70 2E
-o 71 FF

其中, o 代表 “out”, 用于向指定的端口发送一个字节的数据. 上述命令会把 FF 写到 CMOS2E 地址中, 以让 checksum 校验失败. (理论上这个 2EFF 可以乱写, 但据说 2E 保存的就是原来的校验和, 对它做修改是最直接的. 而且, 这个校验和原来就是 FF 的概率应该很小, 所以这样做大概率可以成功.)

现在大部分的机器都使用 UEFI 固件而非 BIOS , 且存储和校验机制更复杂, 上述这种简单的方法应该是早就失效了. 而且, 我不愿意冒着把机器变砖的风险乱搞自己的设备. 为兼顾可行性和安全性, 使用虚拟机可能是最好的方案.

实验思路

安装 Windows 7 虚拟机, 进入固件设置 BIOS 密码, 然后安装流氓软件 MaxDOS, 利用它进入 DOS 环境, 再用上述命令修改 CMOS 数据来重置 BIOS 设置, 达到绕过用户密码的效果.

实验过程

安装 Vmware Workstation , 具体安装和破解方式自行搜索.

下载 Windows 7ISO 镜像, 为了追求纯净性, 我是在 MSDN I tell you 上下载的. 需要登录, 用 GitHub 授权一下就行. 不介意 镜像不干净 的话也可以去其它奇奇怪怪的下载站上下载.

打开 Vmware Workstation, 新建虚拟机, 选择 ISO 文件, 激活码留空就行, 然后设置内存、硬盘、CPU 等, 总之就是一套正常的虚拟机安装流程, 不赘述. 然后启动虚拟机等待安装即可.

如果显示面积极小, 右键桌面设置屏幕分辨率为 1920x1080, 再点击 放大或缩小文本和其他项目 , 设置为 150% 就正常了. 不过这样可能会导致画面变卡顿.

1.png

然后关机, 在这里的小三角处选择 打开电源时进入固件 , 如下图所示.

2.png

这样就进入了 PhoenixBIOS 的设置界面, 使用 方向键Enter 进行移动, 选择 Security:

3.png

先设置管理员密码, 再设置用户密码, 完事后按 F10 保存并退出.

4.png

再次进入固件, 现在要求输入密码了:

5.png

我们的目标就是, 清除掉刚刚设置的密码.

正常重启进入系统, 打开 IE (没错, 它居然还能派上用场), 网址栏输入 http://pzz.cn, 来到 MaxDOS 的下载页, 点击上方的 MaxDOS 9.3 即可下载:

6.png

下载得到一个压缩包, 打开 (太好了, 不需要另外下载解压软件), 把里面的 EXE 文件复制到桌面, 双击启动进行安装. 这里选 快速安装 即可.

7.png

安装完成后桌面会出现一个快捷方式, 双击运行.

8.png

选择 一键启动及启动设置 , 设置等待时间为 5 秒 (不然可能来不及), 再点击旁边的 设置一键启动.

然后重启, 进入系统前按 F7 进入 MaxDOS 的启动界面:

9.png

选择第一个:

10.png

再选择最后一个 MINI DOS MODE.

进入 DOS 环境, 输入前面提到并解释过的命令:

11.png

然后关机, 开机时选择进入固件, 不再有密码输入界面了, 可以直接进入 BIOS 设置界面:

12.png

密码已被清除, 实验成功.

  • 标题: 使用 DOS 的 debug 命令清除 BIOS 密码
  • 作者: Coast23
  • 创建于 : 2025-10-15 22:40:54
  • 更新于 : 2025-10-15 23:55:44
  • 链接: https://coast23.github.io/2025/10/15/使用-DOS-的-debug-命令清除-BIOS-密码/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论
目录
使用 DOS 的 debug 命令清除 BIOS 密码