Ещё один "DOS-экзотический" способ изменения файла original.tmp[50000000] 256 КБ award bios.
Известный "Рецепт 1 (описан в интернете)" изменения файла при работающем modbin, как сказано в статье, работает только с первыми 64КБ, второй способ предполагает знание формата и его учитывание при склейке или замене. Описываемый способ лишён указанных недостатков, зато имеет много других.
Предполагается использование раритетного dosshell. Для тех, у кого не стоит Win9x(или DOS), кто не знаком с работой в DOS, дальше лучше не читать во избежание.
Поскольку в чистом и светлом DOS обычно не хватает памяти в первых 640КБ, помещаем в config.sys что-то вроде
dos=high,umb
fileshigh=40
device=[path]himem.sys /testmemoff
devicehigh=[path]emm386.exe /noems
installhigh=[path]mouse.com
Для удобной работы в dosshell, как в Windows, без мыши не обойтись. Открытых файлов (fileshigh=) меньше лучше не ставить. Убираем все резиденты и прочее, тратящее память. Перегружаемся и получаем около 620КБ свободных. Запускаем dosshell и из него modbin- в нём имеем уже около 570 КБ. Переключамся по Alt+Tab обратно в dosshell и запускаем любимый hexeditor(dos), я использовал Volkov commander. В нём открываем из директории временных файлов(например, c\temp) файл с названием что-то вроде dosshell.swp. Это- образ памяти "процесса" в котором работает modbin со всеми загруженными данными. Правим требуемое, сохраняем. Возвращаемся в modbin, там сохраняем и выходим, сравниваем для верности. Для уверенных в себе и/или умеющих howswap- прошиваем.
Проверялось это на modbin6 1.00.38 и bios c3m266 1.09. Будет ли это работать для других версий modbin(или даже amibcp) и других размеров образов- неизвестно. Кто проверит- откликнитесь. Теоретически, способ должен работать с не менее раритетным GameWizard/DOS, может будет больше свободной памяти, возможно в нём есть встроенный hexedit.
PS Способ предоставляется как есть и никаких гарантий, что он работает- не даётся. Также не несётся никакая ответственность.
PPS Если модераторы найдут работающим и сочтут нужным- можно положить в FAQ.
PPPS dosshell есть в дистрибутиве dos 6.22
Все то же самое можно делать и под нормальными многозадачными ОС, с тем же результатом. Как правило, проще проделать это на другой машине, чем шаманить с настройками ДОС.
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
имеется в виду, запустить dosshell из Windows? или что?
dosshell нужен только для того, чтобы получить в файл память процесса или есть возможность редактировать память чужого процесса в Windows?
Смысл мероприятия состоит в том, чтобы отредактировать вытащеный modbin-ом файл, когда он вынут из образа прошивки и распакован, а потом вставить его на место. Именно для этого нужно иметь возможность запустить второй процесс для редактирования файла, _не закрывая_ mdobin-а, а как это сделать - неважно. Если бы в modbin-е был предусмотрен выход в DOS, можно было бы вообще не заморачиваться...
За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.
Зачем изобретать велосипед... (ну конечно можно, если очень хочется) Посмотри awdbedit.sourceforge.net/
я пробовал переписывать файл из-под modbin'а, но это работает только для первых его 64КБ, а нужно все 128. Про это и в статье написано. Или я чего-то не понял не так?-(
awdbedit использовал, но чем-то он не подошёл, уже не помню, "контрольную сумму" что-ли в бутблоке правил. Может c3m266 особенная, для неё даже cbrom 2.08 на некоторых модулях нельзя использовать, т.е. использовать можно, но после этого знакомимся с бутблоком.
ничего в ней (c3m266) особенного нет. howswap? hot! ^)
там скорее стоит сст"шка, которую без вопросов дампит awfl823b, анпакь dump хоть lha, правь что надо, как надоест - cbrom (только возьми по-новее, чем 2.07) cbrom nullfile /logo m02... (тут имя системного биоса. получится nullfile (который может в винде расти до больших размеров by несшибаемый процесс), его удаляешь в общем. какой-нибудь winhex v11.xx умеет по cntrl-f2 считать crc 8bit unsigned, считаешь для файлика bios.rom (будет он после операций cbrom) только тонкость - ко 2му байту c начала файла добавить 0x10, в 0x11(или0x12, где 0х40 внутри в общем) содержимое меняешь на 0x50, полученный байт crc записываешь в самый конец вышеупомянутого, после, тот же winhex по cntrl-l может до конца (~0x34000) заполнить файл 0xff - сюда пойдут модули, которые нужно вставить с backup'a by cbrom /mod extract/filename
best wishes,
сколько различных глаголов:
анпакь, удаляешь, считаешь, добавить, меняешь, записываешь, заполнить, вставить
я ищу простого способа, а то что можно ТАК-это ясно из чтения конфы
хотя всё равно спасибо, за summary
а насчёт цброма-если вырезать файл из биоса, а потом вего вставить, то пересчитывается заодно и в бутблоке crc, а бутблок меняться не должен, иначе при загрузке он и зовётся
Отправить комментарий