Автор: ROMby Unknown , 14 мая 2004
Никак не могу победить сабж.
Мать: GigaByte GA6OMM7E
Версия БИОС: Award Modular BIOS v6.00PG

Что делаю:
1. Сливаю прошивальщиком биос в файл.
2. В модбине изменяю Security Default Password на свой.
3. Прогоняю БиосПатчер-ом
4. Зашиваю FLASH840.EXE - шником

Результат:
AWARD_SW идет на ура....

Думал, что модбин не сохраняет результат. Изменил BIOS Message - сохранилось... А пароль не сохраняется...

Пробовал модбины:
modbin6.1.00.37, modbin6.1.00.37 - оба при попытке сохранить вываливаются с ошибкой.
modbin6.2.00.00beta - сохраняет, но рез-ат см. выше...
Содержимое данного поля является приватным и не предназначено для показа.

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

StarGaz0r

21 год 9 месяцев назад

1. метод подсчета CRC вовсе не является загадкой
2. помнится в эпоху DOS я писал такого резидента - CMOSGuard назывался - работал в паре с KillKbd :lol:

Root

21 год 9 месяцев назад

1. метод подсчета CRC вовсе не является загадкой

Тогда, пожалуйста, расскажи алгоритм или дай линк на место, где это можно посмотреть.

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

21 год 9 месяцев назад



1. Заархивировать его. Есть 2 способа:

б) CBROM'ом :

CBrom /PCI

(вместо /PCI может быть что угодно: /ACPI, /OEM0 ...)
любой файл, который не жалко (хоть нулевой длины)
в результате CBROM ругается и подвиснет
(это нормальная реакция на файл )
жмем Ctrl+Break
получаем нужный нам файл файл BIOS.ROM в текущей директории


cbrom завис вхлам ctrl+break не помогло - снял задачу ))


2. В порлученном архиве модифицировать следующие байты (в HEX-редакторе):

а) #0Fh=00h #10h=00h
(если архив создавался с помощью LHA, то по этим байтам обычно расположено
ВРЕМЯ последней модификации файла)

б) #11h=00h #12h=50h - идентификаторы основного образа;

(если архив создавался с помощью LHA, то по этим байтам обычно расположена
ДАТА последней модификации файла)

в) и желательно ExtendedArea1,2,3 (=20h{OSID},00h,00h)
(если архив создавался с помощью LHA, то там обычно (=4Dh{MS-DOS},00h,00h))


а где оно располагается?


г) если не устраивает регистр букв в названии файла, то можно изменить его;
можно также полностью сменить название на другое такой же длины;

3. Пересчитать и подправить ChkSum (байт #01h)


сделал


4. Проверить полученный архив с помощью LHA:

lha t BIOS.ROM <-- если выдаст ошибку, то проблемы с CRC или ChkSum
lha -t BIOS.ROM <-- если выдаст ошибку, то проблемы с ChkSum


> lha t BIOS.ROM

Testing archive : BIOS.ROM

No file found

> lha -t BIOS.ROM

Name ... .. . . . . . . . . .... .... ...
---------------------------------------------
no file

:!:

дальше продолжать не стал...

StarGaz0r

21 год 9 месяцев назад

1. метод подсчета CRC вовсе не является загадкой

Тогда, пожалуйста, расскажи алгоритм или дай линк на место, где это можно посмотреть.


смотрим утекшие исходники биос - там есть все :wink:
есть некоторые проблемы со старыми биосами, но их можно решить дизассемблировав cbrom

xKVtor

21 год 9 месяцев назад

Bizquit
cbrom завис вхлам ctrl+break не помогло - снял задачу ))

а если вторым способом (через LHA) ?
у меня оба способа прекрасно работали
а где оно располагается?

Программка как раз отображает карту расположения (структуру) полей заголовка: адреса полей в первой колонке, длина -- во второй, название полей в третей.
Заголовок распологается с самого начала файла. Нумерация байтов, как в HEX-редакторе (с нулевого).

Любые вносимые изменения лучше контролировать с помощью упомянутой программки.

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

21 год 9 месяцев назад

Упс, мой косяк... пропустил РPS... думал, что прога сама правит ChkSum, после его правки ЛХА стал разпознавать bios.rom

Записать bios.rom в прошивку, я думаю, проблем не составит.
Остается узнать способ подсчета "злополучного байта".

Да, и еще смущает разница в 1 байт оригинального и перепакованого 6omm7e.bin (см. выше по треду). может этот байт и есть тот самый ЦРЦ, который идет следом за главным модулем прошивки?

PS:
а Биос_Патчер не правит контрольную сумму?

xKVtor

21 год 9 месяцев назад

Bizquit
Остается узнать способ подсчета "злополучного байта".

Полночи потратил на разработку этого вопроса.
Картина понемногу проясняется.
Сорцы биоса вчера тоже глядел, но ни черта не понял (туго у меня с ассемблером), кроме того, что используется CRC16 с довольно оригинальным образующим полиномом.

Не понятно пока, как они 16-битный CRC запихивают в 8 бит
Берут на выбор один из двух байтов ?

Надо еще выяснить, имеет ли вообще этот загадочный байт хоть какое-то отношение к CRC.

В общем вопросов тьма, сегодня продолжу разборки :)

Да, и еще смущает разница в 1 байт оригинального и перепакованого 6omm7e.bin (см. выше по треду).

ИМХО, в этом нет ничего удивительного
может этот байт и есть тот самый ЦРЦ, который идет следом за главным модулем прошивки?

Вряд ли.
Этот CRC нужен биосу, а не архиватору.
Поэтому архиватор даже не подозревает о существовании этого CRC ? :-)

Кстати, если бы не этот проклятый CRC, то состав модулей в образе биоса можно было бы просматривать с помощью архиватора :-)

ЗЫ: Что-то с форумом на клокерсах стряслось.Уже целый час в дауне...

Root

21 год 9 месяцев назад

смотрим утекшие исходники биос - там есть все

Стормозил. Сорри :oops:
Сырцы то ведь есть! :)

apple_rom

21 год 9 месяцев назад

Так, народ - об чём гутарим, собственно??? Об любимых авардовских цээрцэшках? Тогда спросите у меня - я знаю больше всех про это и, вообще, их у меня больше чем в самом аварде... :D
А если серьёзно, то подавляющее большинство пытающихся "разгадать" (или утверждющих, что уже сделали это) алгоритм их (различных CRC в Award BIOS) подсчета не учитывают следующие _принципиальные_ вещи:
- способ подсчета изменется у разных производителей (самый яркий пример - Asus)
- способ подсчета разный у разных версий
- и _самое_главное_ он изменялся (в т.ч. изменяется/будет_изменяться) СО_ВРЕМЕНЕМ. Т.е. в одной и той же версии способо подсчета мог изменяться.
Поэтому, например, лично я очень давно похоронил попытки написать патчер, считающий чексуммы (первые версии патчеры так и делали) - я пересчитывал кучу чексум, в т.ч. давно уже не используемых самим авардом - это грубо давало 90-95% точность работы. После плюнул и стал пользоваться cbrom - получил 99-99.9% точность. Итого, как говорится - "А смысл???" :)
Если же кого-то интересует "отдельные" моменты подсчета чексум - спрашивайте, но только сначала подумайте и скажите "зачем" вам это надо и нельзя ли это сделать имеющимся таким банальным и сверхнадежным "cbrom 2.07/2.08"... :)

ivp

21 год 9 месяцев назад

Так, народ - об чём гутарим, собственно??? Об любимых авардовских цээрцэшках? Тогда спросите у меня - я знаю больше всех про это и, вообще, их у меня больше чем в самом аварде... :D

Дык... Заглядывал бы почаще - может, и спрашивали бы... А то сидим тут, как сиротинушки... :wink: