Решил я эту тему создать, т.к. хочу научиться ковырять 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.
При работе желательно использовать корневые дирректории, снимать атрибуты у файла и использовать короткие английские имена. Вот кому понятно, а кому нет : атрибуты можно увидеть нажав правой клавишей мышки по файлу и выбрав свойства. Снять галочки. Вот такое д.б. объяснение.
Я конечно понимаю, что для начала надо..... Но как я уже посетовал - везде какая-то середина. Ну помогите по чуть-чуть!
ИМХО проще и надежнее все-таки на дискетку. Если с винтом что случиться, то всегда можно оказаться крайним.
ЗЫ: Кстати, там в обсуждении кто-то предлагал встроить подобную фишку в BP. Не заинтересовало ?
ПС [13-06-2006] Идеальный скриншот BIOS'а ? Запросто ! // K.V.
>ЗЫ: Кстати, там в обсуждении кто-то предлагал встроить подобную фишку в
BP. Не заинтересовало ?
Дык это не меня должно интересовать, патчер это и так делает - бери да встраивай.
Глянь в теме про недокументированные возможности сам-знаешь-где.
А так - можно сказать "техподдержке", делов по добавлению подобного "по умолчанию" - всего ничего.
Более полезна
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-ями до нужного размера. Это пространство идёт сразу после всех запакованных модулей.
mod = остаток от деления.
40Ch = 1036
1036 = (255+1)*4 + 12
скажу по-другому - без изучения мат. части явно будет трудно
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Секретный ключик: lha.exe /? все выдаст.
А читалась ли указанная в самом начале статья? Ибо:
Да читалась. Просто не отложилось. Статья она большя как-бы и интересная. А вот так в виде цитат оно сразу видно и вспоминается. Тьфу чёрт.
И пока я до нужной книги не добрался не могу разобраться : если в десятичной 1036/(255+1)*4 остаток=12 - никак. Во первых уж это никак остатком назвать нельзя, ибо 1064 однако больше 1036. Ну и не получается ни 12 ни -12. А если в HEX калькуляторе посчитать, то там вообще никаких остатков не показано было. Чёрт и знакомых таких чтобы в азах шарили нет и по крупицам книги какие видел это тыщь на 10 тянет. Я же не открываю контору по заколачиванию на биос. Не в обиду говорю - я вас не пытаюсь напрягать.
Откуда взялось 1064?
256*4 = 1024.
А кому счас легко...
Подскажите пожалуста про AMI биос. Я не вижу привычных lha модулей. Как находить их и определять вручную в архиве они или нет? Где определяется тип проца и пишется его название? .
В модуле 06 - DMI есть куча надписей : to be filled by oem. Это я понимаю скрываются какие-то меню БИОС? Разгон на маме ms-7228 oem v1.0 отсутствует полностью.
Отправить комментарий