Автор: ROMby Unknown , 18 июня 2006
Решил я эту тему создать, т.к. хочу научиться ковырять BIOS ну и вообще всё. Вся беда в том, что я полный лох в программировании. Я с удовольствием бы врубился, но все книги и статьи в инете пишутся из расчёта наличия элементарных знаний в этой области. Причём мне кажется под этими элементарными знаниями подразумевается маленькая научная степень. Поэтому убедительно прошу ответы давать ОЧЕНЬ разжёваные.
1. Я хочу знать как работают архиваторы. Не алгоритмы архивирования, а структуру архива. Здесь очень нужен LHA. В инете кроме инфы, что он поддерживается не нашёл ни .... А нужны примеры командных строк и описание их действий. Та короткая справочка, что вылазит если просто ткнуть на .ехе - НУ НЕ КАНАЕТ ОНА ДЛЯ ЛОХОВ! Эксперимент конечно хорошо, но слишком много вариантов. Причём вариантов этих результаты вместе могут давать error.
2. Есть такая проблема : я беру свой BIOS от мамы, открываю его в HEX, нахожу основной модуль, выделяю его и копирую, создаю новый файл и вставляю, сохраняю как 1.lzh, разархивирую так - lha.exe e 1.lzh, полученный 1006.bin правлю с сохранением размера и сохраняю как 1007.bin, архивирую обратно в новый чтобы не путаться архив - lha.exe a 2.lzh 1007.bin и получаю больший размер. Мне вообще не ясно почему размер теперь больше. Ведь механизм одинаков - как было заархивировано так туда и обратно. Где-то подобное описывалось. Но решения не найдено, а здесь я видел вроде поборол кто, но не объяснил как. Поэтому я не стал запоминать ту страницу. Я пробовал лепить BIOS дальше, дописывая к полученному архиву всё остальное, но сами понимаете из-за несоразмерности не шьется. Я пробовал просто удалять в разных местах 00000000&FFFFFFFF или укорачивать имя архивируемого файла, но checksum error.
3. Я вообще не знаю как считать checksum, какого она д.б. размере-формата и куда её потом писать. Как узнать, подсчитала и всунула-ли такая-то прога в нужное место этот checksum или это был вообще CRC.
4. Какая разница между ними и где в осном используются.
5. Поскольку я тоже использую ХР, а проги корректно работают из под DOS, в частности modbin6.exe 1.00.38, то что мне сделать, если под руками нет старого компа, а на этот старые ОС не ставятся?
6. CBROM - знаю только 2.07 версией пользоваться надо. Рабочие команды. Кто что как делал, ПОЛУЧИЛОСЬ - сюда пожалуста. Та короткая справочка, что вылазит если просто ткнуть на .ехе - НУ НЕ КАНАЕТ ОНА ДЛЯ ЛОХОВ! Знаю команду для просмотра какие модули есть : cbrom.exe 1006.bin /d. Извлечь картинку : cbrom.exe 1006.bin /epa extract. Удалить cbrom.exe 1006.bin /epa release. А вставить уже нужно указывая имя вставляемого файла cbrom.exe 1006.bin /epa имя romfile.

При работе желательно использовать корневые дирректории, снимать атрибуты у файла и использовать короткие английские имена. Вот кому понятно, а кому нет : атрибуты можно увидеть нажав правой клавишей мышки по файлу и выбрав свойства. Снять галочки. Вот такое д.б. объяснение.

Я конечно понимаю, что для начала надо..... Но как я уже посетовал - везде какая-то середина. Ну помогите по чуть-чуть!
Содержимое данного поля является приватным и не предназначено для показа.

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

xKVtor

19 лет 8 месяцев назад

[OFF]
а почему на винт не пишешь?

ИМХО проще и надежнее все-таки на дискетку. :) Если с винтом что случиться, то всегда можно оказаться крайним.

ЗЫ: Кстати, там в обсуждении кто-то предлагал встроить подобную фишку в BP. Не заинтересовало ? :) [/OFF]

apple_rom

19 лет 8 месяцев назад

>ЗЫ: Кстати, там в обсуждении кто-то предлагал встроить подобную фишку в
BP. Не заинтересовало ?
Дык это не меня должно интересовать, патчер это и так делает - бери да встраивай. :)
Глянь в теме про недокументированные возможности сам-знаешь-где.
А так - можно сказать "техподдержке", делов по добавлению подобного "по умолчанию" - всего ничего.

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

19 лет 8 месяцев назад

Более полезна
http://www.globaltrust.ru/security/knowbase/Integrity/integrity_control_mechanisms.htm

Не допрошиваюсь. Я знаю, что надо замкнуть, чтобы запустить аварийную прошивку.

8. А у LHA можно выбрать параметры сжатия? Я кроме параметра на максимальное сжатие вроде -0h ничего подобного не видел, хотя и с этим параметром не сжалось сильнее.
9. Я так понимаю, что какая-то программа сравнивает контрольные суммы. Ну для bios это boot-блок. Но кто их создаёт? Программист, когда состряпает файл? Куда эта сумма дописывается? В конец файла? Откуда такая-то программа знает где кончается тело файла и начинается его CRC? В статье по редактированию написано модуль плюс байт CRC. Однако я только около original.bin вижу этот байт FF. Остальные модули следуют без дополнений.

Ну да это asus. И этот original.bin лежит вначале.

В выше указанной ссылке сказано, что не трудно написать прогу, которая будет подгонять изменённый файл под нужный crc. Ну очевидно кто-то написал. Есть инфа где её взять?
Я здесь видел кто-то написал прогу просто для подсчёта, но ссылка не работает. Тоже нужна рабочая ссылка или в почту.

CheckSum = Sum mod (MaxVal+1) = 40C mod (FF+1) = 1036 mod (255+1) = 12 Как получилось это число? Я брал калькулятор в HEX и что только у меня не получалось, но не 12.

Кстати по одной методе я попробовал взял понимаемый modbin-ом bios от gigabyte. Взял ручками достал из своего биоса этот original.bin, поправил его, переименовал в originar.bin и запихал в гиговский биос. Потом достал то, что сделал модбин и соединил со своим хвостом. В результате модбин теперь открывает и хотя и странно просматривает асусовский биос, однако прошиваться он не хочет, т.к. типа не award. Ну ине знаю каким образом модбин шифровал original.bin, но получился он существенно меньше и на контрольные суммы не ругался.

Для себя понял важную вещь : размер всего BIOS и отдельных его разархивированных модулей одинаков. Однако размер архивов м.б. различен. Варьируется длина пустого места во всём биосе. Какое-то пространство забивается FF-ами или 0-ями до нужного размера. Это пространство идёт сразу после всех запакованных модулей.

Root

19 лет 8 месяцев назад

Как получилось это число? Я брал калькулятор в HEX и что только у меня не получалось, но не 12.

mod = остаток от деления.
CheckSum = Sum mod (MaxVal+1) = 40C mod (FF+1) = 1036 mod (255+1) = 12

40Ch = 1036
1036 = (255+1)*4 + 12

скажу по-другому - без изучения мат. части явно будет трудно :(

apple_rom

19 лет 8 месяцев назад

А у LHA можно выбрать параметры сжатия?

Секретный ключик: lha.exe /? все выдаст.

А читалась ли указанная в самом начале статья? Ибо:

В статье по редактированию написано модуль плюс байт CRC. Однако я только около original.bin вижу этот байт FF. Остальные модули следуют без дополнений.

...Cразу же дальше (т.е. без разрыва) идёт файл следующего запакованного модуля, например, awardext.rom (на конце уже никаких «дополнительных» байтов)


Для себя понял важную вещь : размер всего BIOS и отдельных его разархивированных модулей одинаков. Однако размер архивов м.б. различен. Варьируется длина пустого места во всём биосе. Какое-то пространство забивается FF-ами или 0-ями до нужного размера. Это пространство идёт сразу после всех запакованных модулей.

...Дальше (также без разрыва) – следующий. И так все имеющиеся в конкретном биосе модули
zzzzz - ~17FFEh* - Свободное место, обычно заполняется «00» или «FF»

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

19 лет 8 месяцев назад

Да читалась. Просто не отложилось. Статья она большя как-бы и интересная. А вот так в виде цитат оно сразу видно и вспоминается. Тьфу чёрт.
И пока я до нужной книги не добрался не могу разобраться : если в десятичной 1036/(255+1)*4 остаток=12 - никак. Во первых уж это никак остатком назвать нельзя, ибо 1064 однако больше 1036. Ну и не получается ни 12 ни -12. А если в HEX калькуляторе посчитать, то там вообще никаких остатков не показано было. Чёрт и знакомых таких чтобы в азах шарили нет и по крупицам книги какие видел это тыщь на 10 тянет. Я же не открываю контору по заколачиванию на биос. Не в обиду говорю - я вас не пытаюсь напрягать.

savely

19 лет 8 месяцев назад

Откуда взялось 1064?
256*4 = 1024.

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

19 лет 8 месяцев назад

Подскажите пожалуста про AMI биос. Я не вижу привычных lha модулей. Как находить их и определять вручную в архиве они или нет? Где определяется тип проца и пишется его название? .
В модуле 06 - DMI есть куча надписей : to be filled by oem. Это я понимаю скрываются какие-то меню БИОС? Разгон на маме ms-7228 oem v1.0 отсутствует полностью.