На днях сделал из odorid-c1 и flashrom программатор

На днях сделал из odorid-c1 и flashrom программатор spi.
Вспомнился этот нетбук, который когда-то тоже пытался отучить wifi карточки проверять, кончилось тож плачевно.
Сразу слил дамп с текущего биоса, после чего начал эксперименты.
Для распаковки воспользовался phoenixtool259
Проверка белого списка в том же модуле BIOSCOD02.ROM, где и сам список.


Чтобы правильно считать смещения, нужно от файла отрезать первые 27 байт заголовка. То-есть надо искать ссылку на 0x238F (учитываем обратный порядок байт и ищем 8F 23).
Такая последовательность находится один раз по смещению 0x162.
Дизассемблируем окрестности этого смещения, скажем в IDA, и видим функцию проверки whitelist, начинающуюся с 0x160 и заканчивающуюся 0x1AD
Видно что в случае удачной проверки снимается флаг командой clc, а в случае ошибки поднимается командой stc.
Патч решил сделать просто заменив команду stc на clc, то есть по адресу 0x16a меняем F9 на F8
Подложить обратно измененный модуль получилось выставив в Advanced настройках PhoenixTooll флаги Allow user to modify other modules и No SLIC.
Во вложении оригинальный прошивальщик с подмененным биосом версии 20CN23WW
А также 20CN28WW, но он собран на основе дампа с матплаты, так как lenovo почему то не выложила эту версию, но прошивала на платы. За этот вариант не могу ручаться, что не сменит, скажем, мак сетевухи или еще чего.

ВложениеРазмер
20cn23ww_wo_whitelist.zip 1.05 МБ
20cn28ww_wo_whitelist.zip 1.06 МБ
Нужна помошь с bios`ом Lenovo S12 VIA