By ROMby Unknown , 14 May 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 - сохраняет, но рез-ат см. выше...
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.
1. метод подсчета CRC вовсе не является загадкой
2. помнится в эпоху DOS я писал такого резидента - CMOSGuard назывался - работал в паре с KillKbd :lol:

Root

21 years 10 months ago

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

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

Anonymous (not verified)

21 years 10 months ago



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

:!:

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

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


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

xKVtor

21 years 10 months ago

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

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

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

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

Anonymous (not verified)

21 years 10 months ago

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

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

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

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

xKVtor

21 years 10 months ago

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

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

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

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

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

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

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

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

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

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

Root

21 years 10 months ago

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

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

ivp

21 years 10 months ago

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

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