forum.hk-service.ru

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

Часовой пояс: 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
Сообщения: 1923
Город: Москва Новокузнецкая 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)

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


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

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


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

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


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

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