Текущее время: 22 апр 2026 21:27


Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 14:40 
Не в сети

Зарегистрирован: 17 май 2015 14:00
Сообщения: 6
Город: калуга
Друзья ! Здравствуйте ! Имеется старенький ноутбук - HP Pavilion dv5 1040er

Системная плата
Тип ЦП Mobile DualCore Intel Core 2 Duo P8400, 2266 MHz (8.5 x 267)
Системная плата Hewlett-Packard
Чипсет системной платы Intel Cantiga PM45
Системная память 4064 Мб (DDR2-800 DDR2 SDRAM)
DIMM1: Kingmax KSDE88F-B8KW5 2 Гб DDR2-800 DDR2 SDRAM (5-5-5-18 @ 400 МГц) (4-4-4-12 @ 266 МГц) (3-3-3-9 @ 200 МГц)
DIMM3: Kingmax KSDE88F-B8KW5 2 Гб DDR2-800 DDR2 SDRAM (5-5-5-18 @ 400 МГц) (4-4-4-12 @ 266 МГц) (3-3-3-9 @ 200 МГц)
Тип BIOS Insyde (08/20/09)

Сетевой адаптер Realtek PCIe GBE Family Controller !!!!!
(Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC)

Проблема в том что при установки чистой OC у мак адреса сетевой карты стоят нули (((
приходиться ставить принудительный мак адрес ! Но если в windows - это прокатывает -но при установки хакинтоша - нули сменить получаеться до сеанса работы !
Под DOC пока :( зывает по умолчанию мак адрес в биосе - нули (((

Пробовал метод http://compkaluga.ru/articles/38/
увы - пишет ошибка что -то с памятью (((
как правильно восстановить мак адрес ?
ip адреса роутер по dhcp раздает и ноут получает ip без проблем !
проблема появилась после того ка игрался с прошивками к роутерам D-link :-)
без мак адреса - НЕ РАБОТАЮТ ПРАВИЛЬНО ОБЩИЕ РАСШАРИВАНИЕ !!
помогите советом ! спасибо заранее))


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 14:48 
Мастер
Аватара пользователя
Не в сети

Зарегистрирован: 28 сен 2010 18:22
Сообщения: 2440
Откуда: Черкассы, Украина
Город: Gherkasy
HP DMI Utilites
тут на форуме где-то выкладывали

_________________
Пиво — это еще одно доказательство того, что Господь любит нас и хочет, чтоб мы были счастливы. Б.Франклин


Вернуться к началу
 Профиль ICQ  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 14:50 
Не в сети

Зарегистрирован: 17 май 2015 14:00
Сообщения: 6
Город: калуга
Евгений (Дядя Женя) Васильев писал(а):
HP DMI Utilites
тут на форуме где-то выкладывали

Спасибо ! пошел искать )


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 15:00 
Не в сети

Зарегистрирован: 17 май 2015 14:00
Сообщения: 6
Город: калуга
Евгений (Дядя Женя) Васильев писал(а):
HP DMI Utilites
тут на форуме где-то выкладывали


можно небольшой FaQ ?
утилиту попробую найти :du_ma_et:


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 15:15 
Аватара пользователя
Не в сети

Зарегистрирован: 20 ноя 2012 23:29
Сообщения: 623
Город: Yerevan
можете шить биос ? с дампа , программатор есть ?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 15:21 
Мастер
Аватара пользователя
Не в сети

Зарегистрирован: 02 ноя 2008 13:19
Сообщения: 492
Откуда: ХМАО
Город: Нефтеюганск
под настоящим досом запустишь батничек, он запустит утилиту правильную ориентируясь на платформу ноутбука. собственно программки входящие в состав HP DMI Tools правят серийники названия ноутбука некоторые другие номера, ну и мак-адрес в том числе.
Реально пишут в микросхему BIOS, dту область флешки где оно лежит. Программа простая нажать номер в меню, вбить значение, нажать энтер. если что кривое введешь сругается.

\\чтобы не трахать себе мозги с этим тулзами, зашивая на программаторе чистый файл в микросхему всегда из старого дампа вырезают и копируют эту область.
Сдается в твоем случае биос на ноутбуке перешивался на программаторе, но кто-то поленился не знал забыл забить мак-адрес. Сам он вряд ли мог исчезнуть.\\


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 15:36 
Не в сети

Зарегистрирован: 17 май 2015 14:00
Сообщения: 6
Город: калуга
Спасибо ребята !! Дорогу понял :-) :-) :-)
копать начинаю !
Программатора нет :(


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 17:06 
Аватара пользователя
Не в сети

Зарегистрирован: 02 дек 2011 20:52
Сообщения: 1506
Город: Харьков
На этих нотиках частенько биосы слетают, просто кто-то раньше до вас прошил чистый биос с сайта, вот в нем мак адрес и прописан нулями. Делаете загрузочную флешку доса, кидаете туда HP DMI TOOL, запускаете и вбиваете в этой утилите 14 цифр-букв от фонаря.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 17:17 
Не в сети

Зарегистрирован: 17 май 2015 14:00
Сообщения: 6
Город: калуга
sash1993 писал(а):
На этих нотиках частенько биосы слетают, просто кто-то раньше до вас прошил чистый биос с сайта, вот в нем мак адрес и прописан нулями. Делаете загрузочную флешку доса, кидаете туда HP DMI TOOL, запускаете и вбиваете в этой утилите 14 цифр-букв от фонаря.


Да спасибо , так и сделал ! Есть небольшой вопрос !
Скачал Hp DMI tool похоже свежей версии !
У моего 1040er -bios простецкий ))) нет таких позиций как кадет прога DMI !
Возможно нужно искать старую версию HP DMI TOOL ?


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 18:11 
Аватара пользователя
Не в сети

Зарегистрирован: 02 дек 2011 20:52
Сообщения: 1506
Город: Харьков
Поройтесь по форуму, там где-то был архив с десятком разных версий этой проги. Кидайте все на флешку с досом и запускайте поочередно, в какой-то из них будет пункт с редактированием мак-адреса


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 17 май 2015 18:15 
Не в сети

Зарегистрирован: 17 май 2015 14:00
Сообщения: 6
Город: калуга
Ребята !!! Вроде победил :-|-:
Спасибо всем за помощь ! :cool_cool:
Всем удачи !!!! :co_ol:


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 28 мар 2016 17:28 
Не в сети

Зарегистрирован: 11 авг 2010 06:25
Сообщения: 5
Увидел похожую ситуацию и решил залить сюда свою, несколько переделанную, статью, как такие проблемы решаются.

andy-72 писал(а):
Пробовал метод http://compkaluga.ru/articles/38/
увы - пишет ошибка что -то с памятью (((
как правильно восстановить мак адрес ?

Все дело в том, что у Decker-а была ситуация с "обычной", т.е. десктопной матерью. Там, традиционно, интегрированные NIC мало чем отличаются от дискретных, в т.ч. имеют аппаратный EEPROM (типа 24xxx), где хранятся MAC и иные настройки адаптера. В ноутах, обычно, на EEPROM экономят и выделяют область для хранения перманентных данных NIC в области DMI или виртуальном EEPROM в рамках основной прошивки МС BIOS (обычно SPI Flash типа 25xxx). Отсюда и методы работы со слетевшим MAC-ом - поправить с помощью заводских DMI/EEPROM инструментов. Но не всегда эти инструменты доступны и не всегда они срабатывают. Пол дня на разбирательство потеряешь, а иногда и более, но зато сделаешь грамотно и будет работать как положено.

Расскажу об Insyde BIOS на примере Acer Aspire 6935G 2009г, который недавно делал (он же 8930, только дисплей поменьше, BIOS-ы точно взаимозаменяемы, наверное, DMI записи отличаются слегка).

Acer не HP, но методы работы весьма похожи, что с AMI, что с Phoenix, что с Insyde. Хуже, когда апдейты с сайта идут не в виде образа, а в виде образов отдельных блоков и все это сложно совместить с образом из флеши, вычитанным на проге. Инструментарий вроде BIOS Backup Toolkit и тут поможет.

На ноуте стояла Vista64 и был прописан SLIC 2.0. Многолетняя винда тормозила и глючила, приводить ее в порядок я смысла не увидел (хотя все равно частично привел чтобы спокойно порешать возникающие проблемы на работающей машине).
Сразу принял решение ставить Win7 (у себя я юзаю XP, но у простых людей она ныне порождает немало проблем стараниями M$).
Кроме SLIC 2.1 возможности модификации BIOS включали разблокирование VT-x, скрытого меню и EIST. По некоторым отзывам выяснилось, что BIOS 6935 и 8930 идентичны, при этом на 8930 неофициально выходил BIOS v1.21, который еще и несколько раз успешно замодили по методам Marcan.st. Найти "самый полный мод" стоило немало трудов и времени, но зато не пришлось модить с нуля самому. В итоге имеем BIOS v1.21 со SLIC 2.1, включенным VT-x, EIST и Advanced menu с кучей параметров (большинство из которых, правда, я бы трогать не рекомендовал за отсутствием оборудования и возможностью глюков).
Кроме того, запатчил EEPROM Intel 5100ABG превратив ее в 5100AGN по широко известной методике.

Вот "полный мод" 1.21 для 6935G/8930 (SLIC21/VT-x/EIST/AdvMenu) (DMI пустой, как на офсайте)
Вложение:
Acer_Aspire_6935_8930_VT_SLIC21_7Menu_EIST.part1.rar [1.15 МБ]
Скачиваний: 55

Вложение:
Acer_Aspire_6935_8930_VT_SLIC21_7Menu_EIST.part2.rar [1.14 МБ]
Скачиваний: 46


Вот мод только со SLIC 2.1 и включенным VT-x (DMI пустой, как на офсайте)
Вложение:
BIOS_Acer_1.21_slic21 VT Windows_AS8930.rar [1.76 МБ]
Скачиваний: 50


Вот для референса последний официальный BIOS v1.20 для 6935G/8930
Вложение:
Acer_Aspire_6935_8930_Official_BIOS_v120.part1.rar [1.14 МБ]
Скачиваний: 36

Вложение:
Acer_Aspire_6935_8930_Official_BIOS_v120.part2.rar [1020.64 КБ]
Скачиваний: 30


Идентификатор матери KM2/TT2, найти его можно в блоке $BVDT$ по адресу 18CFA0h, прямо перед DMI по адресу 18D000h.

Все прекрасно работает, SLIC 2.1 не месте, но сразу всплыла известный проблема - все серийники потерялись, как и MAC LAN Atheros.
Я был готов к такому повороту событий (читал отзывы и имею большой опыт) и сделал бакап оригинального BIOS с помощью BIOS Backup Toolkit 2.0
Вложение:
Universal BIOS Backup ToolKit 2.0.zip [595.6 КБ]
Скачиваний: 206


Чего и всем советую. Всегда снимайте бакап. Утилита простая до безобразия - 2 кнопки - Read и Save. Работает практически со всеми BIOS любых производителей. Писать флеш не умеет, запороть что либо невозможно. Единственно требует прав Администратора, поск использует низкоуровневый драйвер доступа к памяти чтобы слить Flash.
Дамп сливется "со всеми потрохами", т.е. включает данные DMI, виртуальный EEPROM (как в AMI) и иные "неперешиваемые" блоки. Иногда нужно принудительно ставить больший размер флеша, чем определила утилита, поск BIOS может отдавать урезанное значение размера, а оставшийся объем скрыт или зарезервирован. Это важно на случай если придется перешивать на проге. Там ведь нужен полный дамп на полный объем. "Полезная часть" обычно расположена "от конца", и образ часто можно не сложным образом "дополнить" (нулями или FF в начале) из официального биоса, но все равно это не всегда так и сложно понять адресацию не видя оригинала.
Помимо BIOS Backup Toolkit можно снять бакап BIOS с помощью официального Windows-прошивальщика (надо править конфиг и снимает все равно только при прошивке), либо с помощью DOS прошивальщика FlashIT - (Flashit Backup.FD /G), но ему нужен голый DOS.
Есть единственное исключение - BIOS Backup Toolkit не умеет снимать образ EC Flash на ноутах, но сливать ее не умеет большинство штатных прошивальщиков. Благо она редко летит и бывает только на ноутах, может каких-то "брендовых" ПК. Снять ее образ в большинстве случаев можно только на проге с выпаиванием из матери, хотя бывает, что ее апдейт прикладывают к апдейту Main BIOS. Кто при этом ее шьет прошивальщик или сам Main BIOS не знаю.

Вот образ BIOS 1.05, который я снял, он включает DMI и NVRAM (последний, впрочем нафиг не нужен поск пересоздается/обновляется при каждом старте).
Вложение:
Acer6935G_v105_08072008_BIOS_Backup.zip [736.13 КБ]
Скачиваний: 31


Блок DMI в образе расположен с адреса 18D000h и занимает около 50h (80 десятичных) байт. Можно вырезать эти 50h байт в отдельный файл (например WinHex или Hiew, затем вставить (с заменой, конечно же) в новый образ BIOS для прошивки и прошить его. DMI должно сохраниться. Прошивальщик для Windows не сложно настроить как-то, чтобы он не перешивал блок DMI, но вот беда я точно не знаю какой из блоков надо исключить в конфиге "в терминах" этого конфига. Конфиг platform.ini лежит рядом с прошивальщиком InsydeFlash. Там, в разделе ForceFlash, везде стоит ALL=1, что означает шить все блоки, а у отдельных блоков везде стоит =0. Так, в т.ч., выглядит конфиг и в официальном апдейте с сайта Acer, из-за чего, видимо, и стоны от пострадавших от "официальной прошивки". Но, исключив не тот блок, можно брикнуть BIOS (часть прошивки будет не соответствовать другим частям, официалы неспроста шьют образ целиком). Мне развлекаться полный разбором, выпаиванием SPI было совсем не охота, так что это "расследование" я опустил, сорри.

На сайте Dmyt.ru лежит, вроде бы, полный образ для 6935 v1.10, но на поверку оказалось, что DMI там пустой, соотв, либо это образ с сайта, либо слит с уже запоротым DMI.

Утилиту DMI172, которую тут рекомендовали для заполнения DMI на 6935, я пробовал на рабочем BIOS. Все тэги она увидела, но писать я не пытался.
DMI имеет бинарную структуру, и что там кроме тэгов хранится хз. Из опыта известно что там могут быть интересующий нас MAC, настройки клавиатуры, таких же вот панелей сенсорных, как на 6935, подсветки и прочих "мелких нюансов". Иногда порча таких настроек может привести к полной невозможности работы на ноуте (была как-то массовая проблема с одним 17" Asus-ом, не помню модель, после штатного апдейта и официалы на ушах стояли), иногда доставлять мелкие неприятности, а иногда может быть вообще незаметна, как в случае с порчей серийников. Поэтому лучше не ограничиваться забивкой параметров через DMI утилиту, а скопировать данные DMI целиком, как написано выше.

Вот пример как выглядит область DMI в 6935/8930
Вложение:
DMI105.png
DMI105.png [ 46.9 КБ | Просмотров: 9190 ]


Прилагаю также набор файлов для правки DMI, состоящий из:
1. Готового файла с вшитым DMI - Mod121.DMI ("это полный мод" с данными DMI с моего 6935, дан как пример, Вам надо свой скопировать аналогично свои данные, а не шить это!),
2. Отдельно блок DMI, вырезанный с адреса 18D000h, Acer, Aspire 6935 и серийник видны там "открытым текстом, остальное надо выуживать из бинарных данных. Оговорюсь, что SNID с налету не находится, возможно вычисляется из SN, PartNo явно копируется из серийника, а FUB хранится на одном из секторов в начале винта (на нулевом треке) и копируется в файл где-то на C:. Зато, MAC легко виден "невооруженным глазом". Он лежит по адресу 13h от начала DMI, соотв 18D013h от начала образа BIOS. Его 6 байт идут в той же последовательности, как и в его нормальном представлении в компе (например как выводит ipconfig /all), никаких BigEndian итп. При этом в DMI остается еще куча "непонятных" бинарных данных, а каждый байт может вмещать до 8 флажков, как известно, вот и посчитайте сколько настроек туда можно впихнуть.
3. Текстовые файлы с оригинальными тегами и MAC с того же компа, для тех, кто хочет поразбираться и найти их в блоке DMI (UUID из BIOS Setup не переписывал, поленился, но он точно зависит от DMI),
4. Текстовый скрин от FlashIt с "его мнением" относительно того, какие блоки защищены в данном BIOS,
Думается, адрес FFF8D000h, указанный там для защищенного блока без названия размером 1000h байт, как раз соответствует адресу 18D000h от начала файла и указывает на блок DMI. Еще боле интересен блок Password по адресу FFF17F000h размером 1000h байт. По смещению 17F000h от начала образа BIOS, внезапно, находит интересный блок из нулей, шестнадцати текстовых троек (3) и сигнатуры _FVH. Зато информация должна очень заинтересовать тех, у кого ноут "закрылся на пароль". Те, у кого пароль стоит только на вход в Setup, могут сразу приступать к изучению бинарных данных в данном блоке (т.е. сливать BIOS с помощью BIOS Backup Toolkit и изучать бинарные данные по адресу 17F000h от начала дампа). Если, конечно, Вы даже запустить комп без пароля не можете, знание адреса не поможет вам сразу узнать или сбросить пароль, но если есть паяльник и прог - вопрос, скорее всего, решится поожительно, и не придется шить образ с пустым DMI с сайта, к тому же, если был установлен пароль на винт, то затирание BIOS с обнуленным блоком пароля приведет к безвозвратной потере возможности выдрать пароль винта оттуда. :). А ведь есть еще люди, у которых ноут погорел, а пароль на винте с данными остался... Вот тут самое интересное начинается. Пароль к винту тоже должен храниться в этом блоке, либо быть деривативом от пароля к системе. Когда "все данные на кону стоят", выпаять 8-ногую SPI-ку и слить данные на проге проблем, думается, не составит. :) Умелые люди умудряются их паяльником выпаивать, даже без фена, а прог на LPT порт собирается из 3 проводов и неск резисторов. В любой приличной мастерской, так или иначе, помогут с пайкой, для мастера-спеца, да если Вы еще и сами ноут разбирали, это пара минут, а вот разбираться с паролями за 3 копейки точно не станут.
5. Текст инструкции на англ по восстановлению из "кирпича". Сработает, только если жив бутблок, и Вы все правильно подготовили - т.е. нужный файл лежит на носителе, который бут блок видит и может считать оттуда нужный файл.
6. Утилита DMI172.exe для тех, кто захочет ей попробовать восстановить DMI (повторюсь, считала она у меня все верно!).
Вложение:
DMIFix.zip [975.56 КБ]
Скачиваний: 123


Собственно инструкция по восстановлению BIOS для Insyde/Acer без прога, лежит во многих местах. Можно сбросить пароль с помощью заливки полного образа с пустым блоком паролей. Ноут должен заработать, но, если был установлен пароль на винт, данные о нем будут безвозвратно утрачены и останется только снимать пароль средствами работающими чз фирмвер винта. Данные DMI тоже должны "обнулиться" (вернее замениться на данные из образа, поэтому предпочтительнее сдуть флеш и поправить ее образ если есть такая возможность. Тут вкратце повторю, что нужно правильно отформатировать флешку или иной носитель, чтобы примитивный, крайне ограниченный в объеме кода бутблока, смог этот носитель опознать смонтировать его "суперстандартную" файловую систему, найти там единственный файл с четко определенным именем, считать в оперативку и записать во флеш. Все это делается "вслепую", поск там нет кода инициализации дисплея, соотв о наличии каких либо проблем или ошибок бутблок Вам сообщить не сможет.

1. ДЛЯ Acer 6935/8930 берете любой заведомо рабочий BIOS, переименовываете его в KM2X64.fd и копируете на флешку. (только для указанных моделей и только такое имя файла и никак иначе!) Для других ноутов имя файла другое. Ищите в нете или распаковывайте образ и ищите там (BIOS пакован LZMA с кастомным заголовком или есть готовый тул от Andyp для вшивки SLIC-ов в Insyde).
2. Отрубаете блок питания, снимаете батарею, вставляете флешку в USB порт,
3. Зажимаете Fn+Esc (на др Insyde ноутах бывают иные комбинации), подключаете блок питания и нажимаете кнопку Power (включения).
4. Следите за миганием индикатора флешки, как единственным источником информации о том, что происходит (соотв, лучше брать флешку с индикатором)
5. Ждете несколько минут, даже после того, как флешка перестала моргать.
(Дело в том, что образ BIOS сначала будет считан в оперативку, а потом оттуда залит во Flash.
на втором этапе индикатор флешки врядли будет моргать, поск обращений к носителю уже нет.)
6. Перезагрузится само или выключаем-включаем, радуемся если заработало.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: MAC адрес -нули !!!
СообщениеДобавлено: 31 мар 2016 12:26 
Не в сети

Зарегистрирован: 11 авг 2010 06:25
Сообщения: 5
Раскопал еще и блок паролей, за исключением пароля к HDD.

Причина только в том, что пароль на винт я установить не смог... Не ставится и все тут. В Сетапе вводишь пароль, подтверждение, пишет ОК, Статус меняется с Clear на Set. Сохраняюсь выхожу, гружу DOS снимаю дамп - разницы нет. Захожу в Сетап - HDD Password = Clear. Делаю снова - все тоже самое. Утилиты DOS/Win показывают статус Security Supported, а должно быть Enabled. Пароль не установлен. Чего только не пробовал - пишет ОК пароль не ставит. Весь мир не знает как его снять, а я не могу поставить... :) Есть кейген пароля винта на этот ноут, но если ноут грохнулся - не с чего будет кейгенить. Залоченный винт никаких "секретных кодов" не запрашивает...

Неделями сидеть трассировать модули EFI времени нет.
Внешний вид Setup-Security почти идентичен показанному тут:
http://www.top-password.com/blog/how-to ... er-laptop/
Вложение:
set-hdd-password.png
set-hdd-password.png [ 21.82 КБ | Просмотров: 9149 ]

Вложение:
remove-hdd-password.png
remove-hdd-password.png [ 22.75 КБ | Просмотров: 9149 ]


Для открывания винта используется только User пароль. Если стоит пароль на вход в ноут и пароль на винт - пришлось бы запрашивать оба пароля. Я такого не видел. Считать пароль винта из служебки BIOS не может, для этого нужны прпрайетарные виндор команды (и еще знать что ими читать и как раскодировать). Поэтому чтобы обеспечить возможность входа по одному паролю BIOS должен хранить пароль винта среди своих ресурсов и разблокировать им винт. Для восстановления "по коду" - тоже самое. Если у BIOS-а нет пароля от винта - никакими "кодами" и "ответами" он его не разблокирует. Винты "в эти игры не играют".

Остальные пароли я разобрал.
Вот как выглядит область EEPROM для хранения паролей без паролей и с установленными Supervisor = 1, User = AAAAAAAA
Вложение:
Pass_Null_vs_S1_U8xA_800.png
Pass_Null_vs_S1_U8xA_800.png [ 35.61 КБ | Просмотров: 9149 ]


Блок паролей хранится в дампе BIOS по смещению 17F000h (FFF7F000h в памяти, согласно FlashIt)
Содержит EFI сигнатуру _FVH и шаблон из 16-и ASCII троек (3333333333333333)
Пароль Supervisor хранится по смещению 17А048h
Пароль User хранится по смещению 17А058h
Принцип хранения обоих паролей одинаков. Пароли зашифрованы.
Каждый блок пароля состоит из Длины - 1 байт, зашифрованного пароля 1 - 8 байт, контрольной суммы 1 байт
Максимальная длина пароля 8 символов определяется формой ввода в BIOS Setup.
Для того, чтобы пароль установился нужно обязательно не только правильно ввести его в сотв форму в Setup и получить подтверждение,
что Password is set, но и выйти из Setup с сохранением настроек.
На каждый блок пароля выделено 16 байт. Не использованные байты заполняются нулями (00h)
Крайне примитивное табличное шифрование производится с использованием фиксированного ключа MAR10648567, взятого из референсного EFI SDK
https://www.virtualbox.org/svn/vbox/tru ... e/MdeModul
ePkg/Universal/DriverSampleDxe/DriverSample.c
Код:
/**
  Encode the password using a simple algorithm.

  @param Password The string to be encoded.
  @param MaxSize  The size of the string.

**/
VOID
EncodePassword (
  IN  CHAR16       
             &n
bsp;*Password,
  IN  UINTN        &
nbsp;            &nb
sp; MaxSize
  )
{
  UINTN   Index;
  UINTN   Loop;
  CHAR16  *Buffer;
  CHAR16  *Key;

  Key     = L"MAR10648567";
  Buffer  = AllocateZeroPool (MaxSize);
  ASSERT (Buffer != NULL);

  for (Index = 0; Key[Index] != 0; Index++) {
    for (Loop = 0; Loop < (UINT8) (MaxSize / 2); Loop++) {
      Buffer[Loop] = (CHAR16) (Password[Loop] ^ Key[Index]);
    }
  }

  CopyMem (Password, Buffer, MaxSize);

  FreePool (Buffer);
  return;
}


Однако, алгоритм использован иной, даже попроще. Точнее сказать, алгоритмов шифрования с помощью данного ключа в BIOS-е используется 2 разных, и оба они "попроще".
Шифрование с указанным ключом встречается в трех модулях EFI.
Метод в модуле OemSetupBrowser, который, в числе прочего, обеспечивает
диалог меню паролей в Setup. Метод использует операцию XOR между паролем и
ключом, и где он используется я не разбирался. Возможно добавлен в соотв модуль для маскировки.
Вложение:
OemSetupBrowser_1008.png
OemSetupBrowser_1008.png [ 70.3 КБ | Просмотров: 9149 ]


Метод в модулях SysPassword и Int15Interface. Метод использует операцию ADD с простым ключем-шаблоном MAR10648567.
Именно этот метод используется для кодирования паролей перед записью в EEPROM.
Вложение:
SysPass_1008.png
SysPass_1008.png [ 89.77 КБ | Просмотров: 9149 ]


Процедура кодирования пароля очень проста:
Берем первый байт пароля, добавляем к нему ВТОРОЙ байт из ключа-шаблона - получаем первый байт закодированного пароля.
Берем второй байт пароля, добавляем к нему ТРЕТИЙ байт из ключа-шаблона - получаем второй байт закодированного пароля.
и так далее до конца пароля. Т.е. CryptedPass[i] = Pass[i] + Key [i+1].
В конце считаем и пишем контрольную сумму, которую нужно вычислить суммирование всех байтов ЗАКОДИРОВАННОГО пароля,
ВКЛЮЧАЯ ДЛИНУ, после его вычесть 1 и применить бинарную операцию NOT. От результата взять только младший байт и записать его в конце пароля,
После чего дополнить строку закодированного пароля нулями (00h) до полной длины 16 байт.

Возьмем первый пароль со скрина - пароль Supervisor.
Заведомо известно, что он состоит из одной ASCII единицы.
ASCII код "1" = 31h
Ключ MAR10648567 в памяти записан в Unicode.
Поскольку все символы относятся к первым 128 символам Unicode они однозначно попадают в нулевую кодовую таблицу
и их запись в памяти выглядит как ASCII коды перемежающиеся нулями (00h код страницы Unicode).
Код:
4D 00 41 00 52 00 31 00 30 00 36 00 34 00 38 00 35 00 36 00 37 00

Процедура кодирования пароля "нулями" и кодовыми страницами Unicode не интересуется, поэтому использует лишь ASCII коды, пропуская нули.
При этом "эффективный" ключ "MAR10648567" состоит из 11 ASCII символов:
Код:
4D 41 52 31 30 36 34 38 35 36 37

Берем первый (и единственный) символ пароля "1".
К его коду 31h добавляем код ВТОРОГО символа ключа 41h, получаем 72h
Теперь вся строка закодированного пароля состоит из 2 байт - длины = 01h и кода первого символа 72h (т.е. 01 72)
Теперь посчитаем контрольную сумму: 01h + 72h = 73h, 73h - 01h =72h, NOT 72h = 8Dh.
Дополняем контрольную сумму в конец закодированного пароля и дополняем строку нулями до 16 байт.
Тогда полная строка закодированного пароля для записи в EEPROM получится:
Код:
01 72 8D 00 00 00 00 00 00 00 00 00 00 00 00 00

Смотрим на скрин, сравниваем по смещению 17F048h

Возьмем второй пароль со скрина - пароль Supervisor.
Заведомо известно, что он состоит из 8 ASCII символов AAAAAAAA.
Следует заметить, что пароли в этом BIOS НЕ Case Sensitive, т.е. регистронезависимые.
Поэтому как бы мы не ввели пароль "AAAAAAAA", "aaaaaaaa", "AaAaAaAa" - он будет преобразован к нижнему регистру: "aaaaaaaa".
ASCII код "aaaaaaaa" = 61 61 61 61 61 61 61 61h
"Эффективный" ключ "MAR10648567" все тот же, состоит из 11 ASCII символов:
Код:
4D 41 52 31 30 36 34 38 35 36 37

Берем первый символ пароля "a". К его коду 61h добавляем код ВТОРОГО символа ключа 41h, получаем A2h
Берем второй символ пароля "a". К его коду 61h добавляем код ТРЕТЬЕГО символа ключа 52h, получаем B3h
Берем третий символ пароля "a". К его коду 61h добавляем код ЧЕТВЕРТОГО символа ключа 31h, получаем 92h
и т.д. до конца пароля.
Теперь вся строка закодированного пароля состоит из 9 байт - длины = 08h и закодированного пароля (т.е. 08 A2 B3 92...)
Теперь посчитаем контрольную сумму: 08+A2+B3+92+91+97+95+99+96h = 04DBh, 04DBh-01h = 04DAh, NOT 04DAh = FFFFFB25h => 25h.

В итоге получаем
Код:
Pass: 08 61 61 61 61 61 61 61 61
         ++ ++ ++ ++ ++ ++ ++ ++
Key:  4D 41 52 31 30 36 34 38 35 36 37
         == == == == == == == ==
Code: 08 A2 B3 92 91 97 95 99 96 25
Длину ^^ не троогаем,   Checksum ^^ считаем


Дополняем контрольную сумму в конец закодированного пароля и дополняем строку нулями до 16 байт.
Тогда полная строка закодированного пароля для записи в EEPROM получится:
Код:
08 A2 B3 92 91 97 95 99 96 25 00 00 00 00 00 00

Смотрим на скрин, сравниваем по смещению 17F058h

Декодировать пароль нужно, понятно обратной процедурой:
Берем закодированный пароль, при желании считаем контрольную сумму чтобы проверить его целостность.
Вычитаем из каждого байта кода соотв символ шаблона - получаем исходный пароль, вернее ASCII коды его символов,
переводим их в символы по любой таблице ASCII или в Hex Editor (типа Hiew или WinHex) и восстанавливаем доступ
к компу назвсисимо от наличия и работоспособности утилит.
Код:
Code: 08 A2 B3 92 91 97 95 99 96 25
         -- -- -- -- -- -- -- --
Key:  4D 41 52 31 30 36 34 38 35 36 37
         == == == == == == == ==
Pass: 08 61 61 61 61 61 61 61 61

Иной вариант - забиваем всю область пароля нулями, соотв пароль будет пустой.
Только не весь блок затираем! Смотрим на верхнем скрине как выглядит чистый не запароленный блок, сравниваем с нижним, запароленным блоком ниже и понимаем, что нужно вычистить из своего блока, а что не трогать!

Флажок (вернее флажки) опции Password On Boot хранятся в виртуальном CMOS, в блоке NVRAM, по адресу 180000h.
Кроме CMOS в данном блоке хранятся иные переменные часто изменяемые, в т.ч. данные DMI о загрузочных устройствах
итп RunTime информация. Чтобы предотвратить преждевременный износ Flash памяти в данном блоке организован Wear Leveling
Каждый раз блок информации пишется на новое свободное место, а старые копии остаются на своих местах пока не кончится место.
После этого физические блоки под самыми старыми записями стираются и на них пишется новая копия данных.
Все бы хорошо, но из-за этого не просто найти текущую копию CMOS среди десятков других. Остальными переменными я не занимался,
но что касается CMOS, то при записи новой копии меняется флажок в предыдущей копии.
Первые байты каждой копии CMOS представляют из себя широко известную сигнатуру AAh 55h, третий байт, как раз некий флажок,
меняющийся с 7Fh в актуальной копии на 7Ch в устаревшей (но тут я серьезно не рыл, поэтому нужно признать "измышлениями" :)).
По смещению 32h можно увидеть название блока в Unicode "S e t u p ". Вот по этим признакам и ориентироваться при поиске CMOS.
Смещения там не "круглые", что в десятичной, что в шестнадцатиричной системе. Каждый блок CMOS занимает 2EAh (746 десятичных) байт.
Пример:
Код:
00 00 00 00-00 00 AA 55-7C 00 07 00-00 00 0C 00         U|     
00 00 BC 02-00 00 F4 27-4A A0 00 DF-42 4D B5 52         'Jа  BM R
39 51 13 02-11 3D 10 AF-53 00 65 00-74 00 75 00  9Q   = пS e t u
70 00 00 00-00 00 00 00-00 00 00 00-00 00 01 03  p           
;   

Найдя актуальную копию CMOS, флажки можно увидеть по смещениям 20h и E2h ОТ НАЧАЛА CMOS!
Если стоит опция Password on Boot, то байт по смещению 20h = 10h, по смещению E2h = 01h
Если Password on Boot отключен, то байт по смещению 20h = 11h, по смещению E2h = 00h
Соотв, есть возможность менять и иные флажки в CMOS, но для этого нужно иметь его карту.
Метод представляется сложным (вернее не сложным а довольно трудоемким) даже для искушенного специалиста,
поэтому приведена для желающих самостоятельно исследовать тему либо написать готовый инструмент (с пониманием своей степени ответственности в этой рискованной области!).

Для того чтобы узнать или снять пароль с использованием этой информации нужно снять полный дамп BIOS!
Если у Вас ноутбук может загрузить любую ОС - сливаете бакап BIOS Backup Toolkit под Win32/64 или FlashIt Dump.bin /G под DOS (см предыдущие посты). Если пароль не позволяет ничего грузить - снять можно только методами типа попыток корочения джамперов или попыток аварийного восстановления BIOS из бут блока (опсано в предыдущем посте). В последнем случае потеряете DMI (если бут блок пишет закрытые области и у Вас в образе нет заполненного DMI).
Для специалиста иной раз легче выпаять SPI, считать дамп на проге и высчитать или вычистить из него пароли (Будьте осторожны, там может быть еще пароль на винт, до которого я не добрался по причинам описанным вверху, делайте бакапы!)

Дополнительная информация:
Основная часть кода в BIOS (касается всех или большинства Insyde) сжата по алгоритму LZMA. Для того, чтобы иметь возможность изучать весь код, вырезать и исследовать отдельные EFI модули
нужно распаковать имидж утилитой LZMA из комплекта LZMA SDK (основа 7Zip).
Открываете образ BIOS любым Hex редактором, ищете ближайшую последовательность байтов "5D 00 00 80 00"
и вырезаете начиная с нее все до конца файла в отдельный файл (напр Insyde.lzm). Потом распаковываете этот файл: LZMA d Insyde.lzm Insyde.bin
Модули имеют PE/EXE (EFI) формат и начинаются со стандартной сигнатуры "MZ", вскоре после котрой можно найти "PE".
Имена модулей в Unicode вписаны в конце каждого модуля. После нахождения ивырезания модулей все прекрасно разбирается и изучается методами статического анализа.
Я не использовал в прцессе разбирательства ничего кроме Far, Hiew и FC из комплекта DOS/Win.
Вот смещения интересных модулей (В РАСПАКОВАННОМ BIOS! НЕ в образе для заливки во флеш!):
SysPassword 135438h-135F13h
OemSetupBrowser 13F538h-158617h
Int15Interface 1B22BCh-1B767Fh
PasswordConsole 135F70h-136CD4h
HddPswdServiceBody 136D54h-13A220h
HddPswdService 13A288h-13B54Ch
HiiDtabase 13B598h-13F4F4h
Некоторые интересные адреса видно на скринах, также пользуйтесь поиском по ключевым словам и не забывайте про F6 DataRef в Hiew
Если потребуется патч и пересборка - лучше использовать проверенные инструменты Andyp на тему Insyde BIOS SLIC Mod.
Прикладываю весь "комплект исследователя" в аттаче
Вложение:
6935_BIOS_Unpacked.zip [1.16 МБ]
Скачиваний: 44

Успехов!

P.S. Если что не по месту то админы могут перенести в правильное место. Я не обижусь :)


Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 13 ] 


Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Зарегистрированные пользователи: Google [Bot], Yandex [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB