У нас около 100 компьютеров одной марки и модели, выпущенных в 2010 году. Мне нужно периодически и вручную менять на всех этих компьютерах системные и пользовательские пароли через BIOS, и я хотел бы автоматизировать эту процедуру с помощью программного обеспечения и иметь следующее идея:
Производитель материнской платы прислал мне программу для чтения и записи CMOS. Я начинаю с установки этих паролей на одном ПК, сохраняю весь ваш контент в файл и после этой программы пишу CMOS на другие машины. Подробно: эта программа должна использоваться с загрузочным диском с DOS.
Поскольку я хотел бы провести эту процедуру через центральный сервер, скопировав файл с новыми данными CMOS в определенную папку, существующую на всех машинах. На каждом ПК есть процесс, работающий под управлением Windows XP с пакетом обновления 3 (SP3), который, как только получил файл, производит чтение содержимого, записывает новые пароли в свою CMOS, удаляет файл из папки и перезапускает себя. Теория должна работать, но не включительно на той же машине, где я создал файл. Происходит следующее: каждый раз, когда я обновляю CMOS, измененные настройки сохраняются, но пароли всегда возвращаются чистыми, то есть без какой-либо защиты для доступа к BIOS.
Сейчас я основываю свою работу на одной программе под названием CmosPwd, которую можно найти на сайте www.cgsecurity.org, но никакие опции не работают должным образом на имеющейся у нас материнской плате. Наша платформа, очевидно, использует Award BIOS 6.00 PG в качестве основы для этих китайских материнских плат. Пробовал новые контакты с производителем, но они не предоставляют карту структуры CMOS. Я обнаружил, что, сравнивая различные файлы, пароли не записываются в режиме ASCII только 5 байтов со смещением 0x40, что я считаю вашим 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
СИСТЕМА: АААААААА
ПОЛЬЗОВАТЕЛЬ: 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
У кого-нибудь была проблема по этому поводу, и он получил простое и дешевое решение, или намекнул бы на это? Я ценю любую помощь.
Несколько вещей, которые нужно иметь в виду:
В большинстве современных наборов микросхем есть несколько банков байтов CMOS помимо ядра 70h / 71h, которое вы сейчас читаете. Посмотрите в таблице данных для вашего чипсета и прочитайте о «расширенной CMOS». Его точная реализация варьируется от чипсета к чипсету, но, скорее всего, на 72h / 73h. Это, вероятно, ваша проблема.
Для современного UEFI BIOS содержимое CMOS просто для устаревшей совместимости. «Настоящие» настройки BIOS хранятся во флэш-чипе BIOS.
Иоахим Пилеборг прав. Внутренняя структура битов CMOS изменяется от версии к версии BIOS. Это в значительной степени гарантированно не будет переносимым между различными материнскими платами. И он не может быть переносимым между версиями BIOS. Чтобы это работало надежно, все материнские платы должны быть идентичными, с одинаковыми версиями BIOS.
Других решений пока нет …