forum.hk-service.ru

Форум о ремонте любой бытовой и цифровой техники.
Текущее время: 17 апр 2024, 06:50

Часовой пояс: UTC+07:00





Начать новую тему  Ответить на тему  [ 2 сообщения ] 
Автор Сообщение
 Заголовок сообщения: Lenovo G505 BIOS Whitelist Removal
СообщениеДобавлено: 02 май 2016, 11:26 
Не в сети
Аватара пользователя

Зарегистрирован: 18 фев 2016, 00:00
Сообщения: 2
Приветствую! Имеется ноут Lenovo G505 model 20240 BIOS v3.0 Вопрос - как(чем) убрать (отключить) whitelist :smu:sche_nie:


Вернуться к началу
 Заголовок сообщения: Re: Lenovo G505 BIOS Whitelist Removal
СообщениеДобавлено: 02 май 2016, 12:08 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 31 мар 2013, 02:41
Сообщения: 1922
Город: Москва Новокузнецкая 6
Я делал пару раз руководствуясь этой статьей
https://geektimes.ru/post/256732/

Написать этот топик меня подтолкнул свой тернистый опыт установки wifi платы 802.11n, которая отсутствовала в whitelist BIOS в моём ноутбуке. Мотивацию и уверенность придал пост http://habrahabr.ru/blogs/DIY/108820
Устанавливаем не поддерживаемую Wifi карту в HP Pavilion dv6-1319er
Когда первый раз поставил другую wifi плату и увидел это сообщение:
Код:
104-Unsupported wireless network device detected.
System halted. Remove device and restart.


первая мысль была о том что это какая-то аппаратная не совместимость устройств и что вопрос замены платы полностью безнадёжен. Но поиск в гугле дал понять что не всё ещё потеряно. Вариантов решения интернеты предлагали не много:

1. Прошить BIOS с правильным патчем, который отключает полностью whitelist или добавляет\заменяет в whitelist VEN, DEV, SUBSYS на необходимую плату.
2. http://www.winmatrix.com/forums/index.p ... fi-working
Перепрошить саму wifi плату чтоб заменить в ней VEN, DEV, SUBSYS на те которые есть в whitelist, по которым и проверяется возможность установки той или иной платы.
Процесс добывания wifi-n платы был грязен и криминален, потому описывать его я не буду, спасибо Dr.Marteens за содействие. Родная плата в ноутбуке стояла Intel WM3945ABG. На замену ей была добыта Intel Wifi Link 5100 AGN. Действовать начал по шагам описанным в посте выше.
Когда я только начал заниматься этим вопросом 3 месяца назад, поиски в интернет дали понять что перепрошить wifi-карту от intel не представляется возможным, а готового пропатченого БИОС-а как-то совсем не находилось… возможно плохо искал.
Распаковка биоса с помощью Phoenix Tool не удалась. Биос был собран на какой-то более старой основе.
Изображение
Программированием биосов я никогда не занимался, да и с ассемблером я на ВЫ. Поиск утилиты для распаковки биоса Compaq не дал никаких результатов, и было решено ковырять биос по живому, с помощью WinHEX. Прошивка представляет из себя флешер HPQFlash.exe и CAB-архив с файлами прошивки.
Изображение
Изображение
У родной wifi платы ИД оборудования был такой
PCI\VEN_8086&DEV_4222&SUBSYS_135C103C
значения в прошивке хранятся в обратном порядке:
VEN_8086 -> 8680
DEV_4222 -> 2242
SUBSYS_135C103C -> 3C105C13

Поиск по двум первым значениям дал очень много результатов, а по 3C105C13 ни одного, были подозрения и мысли что прошивка ROM.bin ещё как-то запакована или зашифрована. Очередной мозговой штурм, гугление, и в течении нескольких часов была составлена карта адресов с искомыми значениями и место нахождения whitelist в прошивке локализовано. Дабы не использовать много места, программисты биоса решили сэкономить пару байт и полностью записали SUBSYS только для 3C105B13, а остальные значения судя по всему подставляли алгоритмом.
Изображение
где зеленым выделены Intel платы, синим Broadcom. Отдельными значениями идут модификации плат 5C, 5D, 5E, 5F. И аналогично записан Broadcom.
открываем INF-файл драйверов Intel и находим те же VEN, DEV, SUBSYS
Код:
; HP_3945_ABG
%NIC_MPCIEX_3945ABG% = Install_MPCIEX_HP_3945_ABG_VISTA64_MOW1 , PCI\VEN_8086&DEV_4222&SUBSYS_135B103C ; MOW1
%NIC_MPCIEX_3945ABG% = Install_MPCIEX_HP_3945_ABG_VISTA64_MOW2 , PCI\VEN_8086&DEV_4222&SUBSYS_135C103C ; MOW2
%NIC_MPCIEX_3945ABG% = Install_MPCIEX_HP_3945_ABG_VISTA64_RoW , PCI\VEN_8086&DEV_4222&SUBSYS_135D103C ; RoW
%NIC_MPCIEX_3945ABG% = Install_MPCIEX_HP_3945_ABG_VISTA64_JPN , PCI\VEN_8086&DEV_4222&SUBSYS_135E103C ; JPN
%NIC_MPCIEX_3945ABG% = Install_MPCIEX_HP_3945_ABG_VISTA64_KRA , PCI\VEN_8086&DEV_4222&SUBSYS_135F103C ; KRA

И кажется что уже всё совсем просто, заменяем одни значения на другие, всё сохраняем и перепрошиваем BIOS. Однако модификаций Intel 3945 всего 5 разных, а модификаций Intel 5100, судя по INF-файлу драйверов аж 8. Хотя по идее достаточно прописать ИД только одной платы. Естественно чтоб узнать VEN, DEV, SUBSYS, её надо вставить в другой ноутбук, в котором нет whitelist. Эту затею я решил отложить, и проверить один важный момент: а проверяет ли флешер CRC прошивки? Ведь утилита Phoenix Tool сама всё собирает обратно и пересчитывает\перезаписывает CRC, а в моём случае это пришлось бы делать руками.

Изменив пару байт в ROM.bin, появился ещё один вопрос: а как всё это собрать обратно в CAB-архив? Ведь стандартный набор архиваторов работает только со своими форматами и плюс 3 — 4 сторонних, а CAB-формат был разработан в Microsoft, и никем особо не поддерживается для запаковки. Через некоторое время была найдена программа 2007 года Cab Maker 2.0.0.120, с помощью которой я собрал первый изменённый БИОС архив.

Изображение
Где хранится контрольная сумма БИОС-а, я не знал, никакой информации о структуре прошивки найти не удалось.
Подозрения падали на файл ROM.sig, однако проверить это было нечем. Попытки найти хешь файла хешированием ROM.bin разными алгоритмами (CRC32, MD5, SHA1 — SHA512 и ещё несколькими), как в нём самом так и ROM.sig ничем не увенчались, что не удивительно.

Идея как действовать дальше родилась мгновенно. Если флешер проверят CRC, значит он его где-то берёт или высчитывает, и сравнивает с другим значением. Значит надо дизассамблировать HPQFlash.exe и в режиме Debug по шагам найти алгоритм или то место где проходит эта проверка контрольной суммы. Ещё была идея в флешере отключить проверку CRC, однако это было чревато убитым железом вообще, в случае если БИОС проверяет свой CRC при запуске ноутбука.

Был и http://forum.biosflash.com/viewtopic.php?f=1&t=1318 как поступили немцы на одном сайте. Они также не нашли где хранится контрольная сумма, но где-то узнали или подобрали алгоритм её подсчёта, и решили в оставшиеся байты где хранится информация о Broadcom-овской плате подсунуть правильно подсчитанные значения, чтоб CRC файла Rom.bin в итоге не изменился. И судя по всему у них это получилось.

Как я уже писал выше, с ASM у меня всё очень плохо и максимум до чего я смог докопаться — это в дизассаемблере IDA Pro Advanced, в режиме отладки найти место где проходит цикл проверки контрольной суммы, но значений CRC найти не смог. Тут я обратился за помощью к другу, который долгое время писал на ASM, чтоб найти таки контрольную сумму. Однако до этого дело не дошло. Очередной штурм гугла дал ссылку на http://forums.mydigitallife.info/printt ... p;page=129 где пользователи просят пропатчить биос их ноутов. Дальнейшие изыскания я решил прекратить, ибо биться как муха в стекло, когда рядом открытая форточка посчитал не целесообразным.

http://forums.mydigitallife.info/thread ... post111460 (Cписок уже пропатченных БИОСов для HP с отключенным whitelist)

_________________
Ремонт любой электроники тел.:+79609672267


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

Часовой пояс: UTC+07:00


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 19 гостей


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

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