Автор: ROMby Unknown , 6 мая 2005
Есть такое дело - нужно добавить/изменить код в BIOS - 2 Mbit, Гигабайтовский.
1) Редактируем основной код 128 Кб, который идет сначала прошивки, то есть распаковываем, меняем, пакуем, суем обратно. Проблема с CheckSum - она идет сразу после упакованного файла - один байт.
Но есть 4 байта в файле BIOS по адресам 37FFE..38001, которые тоже каким-то макаром относятся к контрольным суммам.

Вопрос - как они вычисляются?

Вообще-то 1-й байт как мы поняли - это контрольная сумма кода 0..37FFD. Но уже со второго - непонятки. Второй байт равен первому + 11h. Что это за константа и откуда? Непонятно. Ну а остальные 2 байта - вообще мрак.

2) После обработки файла BIOS патчером - туда добавляются два файла - modul.tmp и start.tmp. Насколько я понял, первая команда start.tmp передает управление в modul.tmp. Я сравнивал два патченных файла с разным размером modul.tmp - меняется кроме самого modul.tmp только эти же самые байты - 37FFE...38001 и еще кусочек после них (пустого места видимо - там 00 00 FE забиваются FF FF FF)

Вопрос - как передается управление на start.tmp? Ведь нигде больше ничего не меняется, а адрес start.tmp меняется? И как встроить код в modul.tmp так, чтобы БИОС нормально работал?
Содержимое данного поля является приватным и не предназначено для показа.

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-адреса преобразовываются в ссылки автоматически.

rgt

20 лет 9 месяцев назад

axelf Дубль убил. Про то, что надо делать для обновления контрольной суммы, по крайней мере для АВАРДа написано не один раз - пользуйтесь поиском. А начать лучше со статьи про редактирование БИОС, котрая (сюрприз) живет на этом сайте в разделе "статьи"

Unknown BIOS (не проверено)

20 лет 9 месяцев назад

Не надо убивать. :shock:

Вопрос был - как эти байты вычисляются, а не как их поправить. Мне нужен именно алгоритм вычисления и где искать все дополнительные контрольные суммы.

Опять же - про modul.tmp и start.tmp вопрос?

Читал статьи - и как редактировать BIOS и как контрольную сумму править. Не помогает. :mrgreen:
Эти вопросы там не раскрыты.

ЗЫ: Вдогонку - в оригинальном файле контрольная сумма всего файла БИОС совпадает с 3-им байтом из этих четырех, а после BIOS патчера сумма всего файла = 0 и не совпадает с 3-им байтом (из 4-х - 37FFE..38001). Что за фигня?

Unknown BIOS (не проверено)

20 лет 9 месяцев назад

Ау, помогите, спецы!