By ROMby Unknown , 6 May 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 так, чтобы БИОС нормально работал?
The content of this field is kept private and will not be shown publicly.

BBCode

  • No HTML tags allowed.
  • 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]
  • Web page addresses and email addresses turn into links automatically.

rgt

20 years 10 months ago

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

Anonymous (not verified)

20 years 10 months ago

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

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

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

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

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

Anonymous (not verified)

20 years 10 months ago

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