правка original.tmp

Ещё один "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

Аватар пользователя rgt

Все то же самое можно делать и под нормальными многозадачными ОС, с тем же результатом. Как правило, проще проделать это на другой машине, чем шаманить с настройками ДОС.

За несоответствие действительности Вашим о ней представлениям администрация форума ответственности не несет.

имеется в виду, запустить dosshell из Windows? или что?

dosshell нужен только для того, чтобы получить в файл память процесса или есть возможность редактировать память чужого процесса в Windows?

Аватар пользователя rgt

Смысл мероприятия состоит в том, чтобы отредактировать вытащеный 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, а бутблок меняться не должен, иначе при загрузке он и зовётся

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей