Автор: Unknown BIOS (не проверено) , 27 апреля 2007
Используя великий и могучий IDAPro5. + скрипты :)

Начну эту тему (кстати по просьбе уважаемого Романа), для всех тех кому интересно раскопать, как работает БИОС.

Дано: человек имеет опыт обращения c IDA Pro.

Решение №1: Award Bios script by
Alexey Kulentsov (http://old.idapalace.net/idc/award450.rar)

!!! не путать с award450.idc входящим в состав idapro5!!! который более старый - 1996 г.вып.

Решение №2 (pre-alpha, моё): http://rapidshare.com/files/28170560/ami.idc.html

Комментарии, советы и предложения в студию.

PS скрипты разрабатывались под 64K BIOS. :)
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Прохожий (не проверено)

18 лет 5 месяцев назад

Вот стою я перед интеловской мамкой и думаю с чего бы мне начать ?
По-моему лучше описать структуру биоса как такового. Как распознавать куски кода, отвечающие за то или иное действие и т.д.

maco

18 лет 5 месяцев назад

Прохожий 
Для начала: Редактируем Award Modular BIOS v6.00PG 
Поскольку у вас скорее всего AMI ("перед интеловской мамкой"), то вышеприведенная ссылка может пригодиться для общего понимания. Хотя модульность BIOS'а на сегодняшний день - явление повсеместное, существуют утилиты и для AMI (на титульной странице wiki).
Уточните, что нужно от BIOS'а в вашем конкретном случае.

Santa

18 лет 5 месяцев назад

Для начала следует распечатать Руководство Pinchakko (в переводе Семена Сатановского), затем долго-долго листать его до начала понимания. Куча даташитов + куча книжек (некоторые упоминаются в ветке https://rom.by/forum/Толковые_книги_по_Асму_Си_Экзелю).
P.S. Была задумка начать статью в Вики по типовым процедурам, встречаемым в коде БИОС, но (так как сам чайник в этом), страшновато подавать на суд комментарии непрофесионала.
С другой стороны главное начать, а профессионалы потом поправят...

Прохожий (не проверено)

18 лет 5 месяцев назад

maco, спасибо за ссылку для общего понимания, но мой случай (как и наверное весь Интел) частный. Подстрока -lh встречается 1раз ито в бутблоке. Максимум чего удалось добиться - просто открыть в amibcp76. при входе в некоторые пункты программа вываливалась. Ничего не изменить, не записать.

Santa, тоже спасибо. Уже листал. Задумку хорошо бы было реализовать.



Основная цель - объяснить мамке о туалатине ...

maco

18 лет 5 месяцев назад

Прохожий
Подстрока -lh встречается 1раз ито в бутблоке

Так у вас же AMI ;).
Максимум чего удалось добиться - просто открыть в amibcp76. при входе в некоторые пункты программа вываливалась. Ничего не изменить, не записать.

А вот об этом поподробнее. Что пытались открыть: слитый дамп или склеенную прошивку? Если дамп - очень хотелось бы на него поглядеть. Если склеенная прошивка - каким способом склеивали?
Основная цель - объяснить мамке о туалатине

А мать физически готова с ним работать?

Прохожий (не проверено)

18 лет 5 месяцев назад

maco начнем с физики: сначало было слово ! А мать подготовится в нужный момент. Смысл курочить рабочую лошадку до часа Х ?


"Так у вас же AMI" А вот об этом поподробнее :-)


БИОС сливал рунифлешем (спасибо Роману). Сначала тот не опознавал чип (писал FF & FF) и сливал только верхние 128к из 256и. Пришлось разобрать и заглянуть внутрь. Там мирно поблёскивала припоем запаяная флешка 28F200 T-серии. Почитал интеловские даташиты и слил форсом как 28F002. Сверил с родной нарезкой - песТня. Стало ясно как из набора файликов лепится нечто целое и почему задаются вопросы  типа "а как собрать это в кучу ?". Ответ очень простой - нефиг лазить там, где на надо (читай «бабки вкладывал я, значит никто меня не должен поиметь» © Intel).

Но это не про нас :). Самый правильный путь переделки такого чуда – сначала закатать родным прошивальщиком iFlash, а потом слить тем же рунифлешем. Почему так? Потому, что в чипе есть две 8к области названные “parameter block” в которые БИОС сам может что-то писать (О чем чесно говорит в одном из менюшек). Соответственно эти области после переделки должны остаться нетронутыми, а не с кучей 00h или FFh как пишут некоторые авторы.

Прикол с iFlash получился, когда на предложение слить биос в файл он задумчиво так сказал «сия шелезка не могёт быть прочитана из принципиальных соображений»… Ну что сказать, буржуины, читай выше.

Теперь об amibcp76.

В edit BIOS modules пишет nvram 8k, bootblock 24k (!? Почему не 16 как в родной нарезке у файла .BB0, непонятно).

“Ничего не изменить, не записать” – считать недействительным. Сегодня всё получилось. Почти всё.

Видит кучу модулей в Edit BIOS modules. Большинство в колонке destination adress имеют dynamic, остальные – конкретные адреса (типа 00 POST F000:0000 или 03 DIM E000:B180). Большую часть из модулей править не даёт.

В edit PCI IRQ routing table часть полей серым цветом и не редактируется.

При попытке зайти в меню advanced CMOS serup зависает на отображении строки processor speed (она же первая и единственная).

В менюшках chipset setup, Power management setup PCI/PnP setup, periferal setup все значения в колонке Active стоят No, что вполне вяжется с аскетическим видом настроек в БИОСе.

Меню configure setup client item пустое (может это нормально ?).

в меню periferal setup в строках Serial port duplex и Serial port Xmiter polarity в колонке Failsafe стоят какие-то кракозябы типа :). Остальные поля вполне осмысленные.

При попытке generate report – долгое раздумье и тихий выход ессно без создания файла отчета.

Пункт save BIOS to disk file. Перед этим делаем одно единственное изменение, например в меню periferal setup ставим floppy controler – yes. И сохраняем. Преувеличить результат работы amibcp76 сложно. Поменяно всё, что можно в диапазоне 06640 – 37CB0. Beyond compare показывает как простое смещение кусков кода, так и вставку каких-то новых. Увеличение кода произошло на ~20кБ.

Страшновато шить такое дело в запаяную флешку… Поэтому и интересует, как его можно ручками почикать.

Вот такие дела.


Всё вышесказанное – исключительное ИМХО не претендующее на истину в последней инстанции, ибо область сия для меня тера инкогнита. Но как написано в известной статье «мы хотим и ничего не боимся» :-) Как бы только пару часиков суткам добавить ?...

maco

18 лет 5 месяцев назад

сначало было слово

Может достаточно будет сначала переделать мать для физической совместимости. Т.е. сначала устранить явные/известные препятствия, а потом разбираться с возможными?
БИОС сливал

Можете куда-нибудь выложить?
В edit BIOS modules пишет nvram 8k, bootblock 24k

Я собирал из Intel'овского набора, пишет nvram 16k, bootblock 16k, все модули поизвлекал, вставлять не пробовал, отчет не генерирует, из advanced CMOS setup вываливается.
Страшновато шить такое дело в запаяную флешку

С корпусом TSOP в домашних условиях воевать трудно ;). А незадействованной разводки под DIP/PLCC нет?
Если уж хочется ручками воевать с asm'ом и datasheet'ами, то могу посоветовать только не торопясь анализировать код вручную от точки входа. Долго, но зато надежно.
256K - это очень мало, и как туда только все современные навороты вместились, может это старый БИОС?

А в NVRAM уже давно пишутся все переменные и события.



Цитата:

Прикол с iFlash получился, когда на предложение слить биос в файл он задумчиво так сказал «сия шелезка не могёт быть прочитана из принципиальных соображений»… Ну что сказать, буржуины, читай выше.



В том числе и наш брат принимает участие в написании сего чуда. 

Если я правильно понял, то это АМИ БИОС, сделанный под Интел?

maco

18 лет 5 месяцев назад

[off]
256K - это очень мало, и как туда только все современные навороты вместились, может это старый БИОС?

Мать BI440ZX.
Если я правильно понял, то это АМИ БИОС, сделанный под Интел?

Скорее AMI, адаптированный Intel'ом под себя ;).[/off]

Прохожий (не проверено)

18 лет 4 месяца назад

maco
Может достаточно будет сначала переделать мать для физической совместимости. Т.е. сначала устранить явные/известные препятствия, а потом разбираться с возможными?

недостаточно. на старых ревизиях не все родные процы запускались, а тут вообще "послезавтрашний" день :-)

хорошо, что клокер может 100МХз выдать. Может туалатин даже на родной частоте работать станет.

Блок питания должен тоже потянуть.



ТоварищЪ
256K - это очень мало

там еще свободное место есть :-)



ЗЫ и еще общий вопрос: с какого момента БИОС знает о стеке ?