0

我们在 2010 年生产了大约 100 台相同品牌和型号的 PC。我需要定期手动更改所有这些 PC,通过 BIOS 更改系统和用户密码,并希望通过软件自动执行此过程,并具有以下内容主意:

主板制造商给我发了一个程序来读写CMOS。我首先在一台 PC 上设置这些密码,将所有内容保存到一个文件中,然后使用这个程序,我将 de CMOS 写入其他机器。详细说明:此程序将与带有 DOS 的引导盘一起使用。

由于我想通过中央服务器执行此过程,因此将带有新 CMOS 数据的文件复制到所有机器上存在的特定文件夹中。在每台 PC 上都有一个在 Windows XP SP3 上运行的进程,一旦收到文件,就会读取内容,在其 CMOS 中写入新密码,从文件夹中删除文件并重新启动自己。该理论应该在我创建文件的同一台机器上有效,但不包括在内。发生的情况是,每次我更新 CMOS 时,更改的设置都会保留,但密码总是恢复干净,即没有任何保护来访问 BIOS。

现在我的工作基于一个名为 CmosPwd 的程序,该程序可以在网站 www.cgsecurity.org 上找到,但是在我们拥有的主板上没有任何选项可以正常工作。我们的平台显然使用 Award BIOS 6.00 PG 作为这些中国主板的基础。尝试与制造商进行新的接触,但他们没有提供 CMOS 结构图。我发现,比较各种文件,密码不是以 ASCII 模式写入的,偏移量 0x40 处只有 5 个字节,我认为这是您的 CRC,如下所示:

CMOS DUMP WITH PASSWORDS:

SYSTEM: 11111111
USER  : 22222222

CMOS Bank 0:
    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    -----------------------------------------------
 0: 59 00 55 00 14 00 05 02 05 13 26 02 40 80 08 00 
 1: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 3: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 
 4: **59 00 55 00 14 00** 05 02 05 13 26 02 40 80 08 00 
 5: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 6: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 7: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 

CMOS Bank 1:
    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    -----------------------------------------------
 0: 59 00 55 00 14 00 05 02 05 13 26 02 40 80 08 00 
 1: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 3: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 
 4: **59 00 55 00 14 00** 05 02 05 13 26 02 40 80 08 00 
 5: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 6: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 7: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 

  系统:AAAAAAA 用户:BBBBBBBB

 CMOS Bank 0:
    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    -----------------------------------------------
 0: 51 00 01 00 15 00 05 02 05 13 26 02 00 80 08 00 
 1: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 3: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 
 4: **51 00 01 00 15 00** 05 02 05 13 26 02 40 80 08 00 
 5: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 6: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 7: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 

CMOS Bank 1:
    00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
    -----------------------------------------------
 0: 51 00 01 00 15 00 05 02 05 13 26 02 40 80 08 00 
 1: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 3: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 
 4: **51 00 01 00 15 00** 05 02 05 13 26 02 40 80 08 00 
 5: 40 f0 00 00 02 80 02 00 04 14 00 00 00 00 00 00 
 6: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 fc 
 7: 00 04 20 80 00 00 00 00 00 00 00 00 00 00 00 00 

有没有人对此有疑问并得到了一个简单而便宜的解决方案,或者对此有任何暗示?我感谢任何形式的帮助。

4

1 回答 1

0

要记住几件事:

  • 在大多数现代芯片组中,除了您现在正在阅读的核心 70h/71h 之外,还有多个 CMOS 字节组。查看芯片组的数据表并阅读有关“扩展 CMOS”的信息。它的具体实现因芯片组而异,但很可能是 72h/73h。这可能是你的问题。

  • 对于现代 UEFI BIOS,CMOS 的内容只是为了兼容旧版。“真实”的 BIOS 设置存储在 BIOS 闪存芯片中。

  • Joachim Pileborg 是正确的。CMOS 位的内部结构随着 BIOS 的修订而变化。几乎可以保证不能在不同的主板之间移植。而且它可能无法在 BIOS 版本之间移植。为了使其可靠地工作,所有主板都应该相同,具有相同的 BIOS 版本。

于 2014-05-09T17:46:50.207 回答