Редактируем Award Modular BIOS v6.00PG (продолжение)

Рис.2.Ищем подстроку -lh.
Рис.2. Ищем подстроку -lh.
Рис.3.Первой найдется в начале "original.bin".
Рис.3.
Первой найдется в начале "original.bin".
Рис.4.Второй - в начале awardext.rom.
Рис.4.
Второй - в начале awardext.rom.
Рис.5.Перебираем, пока не находим нужный нам модуль (видно его название).
Рис.5.
Перебираем, пока не находим нужный нам модуль (видно его название).
Рис.6.Выделяем модуль - его начало левей подстроки -lh на два байта.Кто не знает, для выделения в hiew используется '*'.
Рис.6.
Выделяем модуль - его начало левей подстроки -lh на два байта.
Кто не знает, для выделения в hiew используется '*'.
Рис.7.Ищем начало следующего модуля...
Рис.7.
Ищем начало следующего модуля...
Рис.8....не "закрывая" выделяемую область...
Рис.8.
...не "закрывая" выделяемую область...
Рис.9....и сдвигаемся на три байта влево (это должен быть нулевой байт). Модуль выделен!
Рис.9.
...и сдвигаемся на три байта влево (это должен быть нулевой байт). Модуль выделен!
Рис.10.Сохраняем "как есть" (As Is).
Рис.10.
Сохраняем "как есть" (As Is).
Рис.11.И теперь его можно распаковать любым архиватором.
Рис.11.
И теперь его можно распаковать любым архиватором.
Рис.12.Всё вышеописанное можно было сделать с помощью команды cbrom f8.bin /pci extract. Но ученье - свет! :)
Рис.12.
Всё вышеописанное можно было сделать с помощью команды cbrom f8.bin /pci extract. Но ученье - свет! :)
Рис.13.Для добавления используем строчку:cbrom f8.bin /pci edit_i8.ttt
Рис.13.
Для добавления используем строчку:
cbrom f8.bin /pci edit_i8.ttt

Редактирование "original.bin"


Извлечение "original.bin"

Но главным вариантом в редактировании биосов является, конечно же, изменение "original.bin". Способов для извлечения "original.bin" известно превеликое множество:

  • запустив модбин и переключившись в другое окно скопировать себе временный одноименный файл, который он (модбин) создает в процессе работы с биосом.
  • тьма всевозможных утилит, работающих с Award BIOS - имеет возможность распаковки любого модуля
  • наконец, просто архиватором (или даже TotalCommaner-ом), который "видит" как lzh-архив с одним файлом внутри - "original.bin"

Однако, у всех (и других подобных) есть существенный недостаток - зависимость от вышеописанных утилит и различных модификаций Award BIOS (оставаясь при этом v.6.00PG). Например, (не специально, но получилось удачно :) ) выбранный файл:

  • не открывается модбином
  • "несъедобен" для многих утилит
  • не определяется архиватором, как LZH-архив.

Вот тут и пригодится опыт, полученный в предыдущем разделе. :)

Рис.14.Аналогично сначала ищем начало "original.bin" по подстроке -lh.
Рис.14. Аналогично сначала ищем начало "original.bin" по подстроке -lh.
Рис.15.Для Award BIOS v.6.00PG (розлива этого тысячелетия) - он есть всегда первый модуль в биосе, в нашем случае он располагается по адресу 90000h.
Рис.15.
Для Award BIOS v.6.00PG (розлива этого тысячелетия) - он есть всегда первый модуль в биосе, в нашем случае он располагается по адресу 90000h.
Рис.16.Выделяем, начиная с начала...
Рис.16.
Выделяем, начиная с начала...
Рис.17....и ищем его конец...
Рис.17.
...и ищем его конец...
Рис.18....следующий модуль - awardext.rom.
Рис.18.
...следующий модуль - awardext.rom.
Рис.19.Сдвигаемся левей на три байта - в отличие от "простых" модулей в конце у "original.bin" есть еще и байт CRC(FF в нашем случае), который нам для распаковки ни к чему (хотя с ним тоже прекрасно распакуется - как на рисунке).
Рис.19.
Сдвигаемся левей на три байта - в отличие от "простых" модулей в конце у "original.bin" есть еще и байт CRC(FF в нашем случае), который нам для распаковки ни к чему (хотя с ним тоже прекрасно распакуется - как на рисунке).
Рис.20.Сохраняем в файл...
Рис.20.
Сохраняем в файл...
Рис.21....и распаковываем. "original.bin" к редактированию готов!
Рис.21.
...и распаковываем. "original.bin" к редактированию готов!

Замена "original.bin" отредактированным вариантом

Вариантов добавления новой (отредактированной) версии "original.bin" в биос также есть несколько и эти варианты во многом аналогичны его распаковке с их недостатками. Потому не будем отвлекаться на "мишуру" и постараемся сделать максимально "правильно".


Рис.22.После редактирования упаковываем "original.bin" с помощью старенького lha.
Рис.22. После редактирования упаковываем "original.bin" с помощью старенького lha.
Рис.23.Уже хорошо знакомой процедурой поиска в исходном биосе по подстроке -lh...
Рис.23.
Уже хорошо знакомой процедурой поиска в исходном биосе по подстроке -lh...
Рис.24.... ищем конец модуля "original.bin".
Рис.24.
... ищем конец модуля "original.bin".
Рис.25.Сдвигаемся на три байта влево - захватив байт CRC - выделяем область...
Рис.25.
Сдвигаемся на три байта влево - захватив байт CRC - выделяем область...
Рис.26....которая продлится до самого конца. Конец упакованных модулей проще всего найти по FFFFFF...
Рис.26.
...которая продлится до самого конца. Конец упакованных модулей проще всего найти по FFFFFF...
Рис.27.Обычно конец находится с первой попытки (удачный пример - с "трудностям" :) ), но сейчас "по дороге" попался незапакованный модуль, в котором тоже есть искомые "эфэфки". Пропускаем эту область и ищем дальше.
Рис.27.
Обычно конец находится с первой попытки (удачный пример - с "трудностям" :) ), но сейчас "по дороге" попался незапакованный модуль, в котором тоже есть искомые "эфэфки". Пропускаем эту область и ищем дальше.
Рис.28.Таки нашли!
Рис.28.
Таки нашли!
Рис.29.Для "запаса" (на всякий случай) захватим кусочек FF в конце (ведь размер упакованного "original.bin" может отличаться от начального) и сохраняем в файл.
Рис.29.
Для "запаса" (на всякий случай) захватим кусочек FF в конце (ведь размер упакованного "original.bin" может отличаться от начального) и сохраняем в файл.
Рис.30.Далее следует "хитрая" процедура - копируем в конец ранее созданного "1.lzh" полученный "хвост" биоса ("ost.tmp" - состоящий из всех упакованных модулей кроме "original.tmp").
Рис.30.
Далее следует "хитрая" процедура - копируем в конец ранее созданного "1.lzh" полученный "хвост" биоса ("ost.tmp" - состоящий из всех упакованных модулей кроме "original.tmp").
Рис.31.В результате полученный "слепок" (из "модульной начинки" в виде запакованного "original.bin" + 1 байт CRC + остальные модули биоса) записываем в файл.
Рис.31.
В результате полученный "слепок" (из "модульной начинки" в виде запакованного "original.bin" + 1 байт CRC + остальные модули биоса) записываем в файл.
Рис.32.Как мы отмечали, "original.bin", который является началом модульной начинки" - был обнаружен по адресу 90000 - туда и вставляем весь полученный файл.
Рис.32.
Как мы отмечали, "original.bin", который является началом модульной начинки" - был обнаружен по адресу 90000 - туда и вставляем весь полученный файл.
Рис.33.Итак, собрать - собрали и cbrom уже даже может корректно подтвердить этот факт. Однако контрольные суммы-то не пересчитаны - ни байт в конце "original.bin", ни "общая" CRC всех модулей, которая лежит сразу же перед BootBlock-ом.
Рис.33.
Итак, собрать - собрали и cbrom уже даже может корректно подтвердить этот факт. Однако контрольные суммы-то не пересчитаны - ни байт в конце "original.bin", ни "общая" CRC всех модулей, которая лежит сразу же перед BootBlock-ом.

Пересчет CRC

Итак, теперь нам еще предстоит пересчитать контрольные суммы:

  1. Контрольную сумму модуля "original.bin", которая располагается сразу после него, перед всеми остальными запакованными модулями.
  2. "Общую" контрольную сумму всех модулей, которая располагается в самом конце используемого ими (модулями) пространства биоса, сразу перед началом бутблока.

Правило следующее:

  • CRC модуля "original.bin" пересчитывает modbin
  • "Общую" CRC пересчитывает cbrom

Один "не трогает" контрольные суммы "другого", поэтому для пересчёта обеих контрольных сумм обязательны два этапа.

Начало.

Окончание.

 

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей