Модули AMI Bios
Хочу добавить совй код как модуль либо код в уже существующий модуль AMI BIOS.
Мат. Плата EliteGroup Via-P6 P4VVM2 (FC-478) Bios Date 01/24/03
e030123s.rom
(ecs.com.tw/ECSWeb/Downloads/ProductsDetail_Download.aspx?CategoryID=1&...(3.1)&MenuID=35&LanID=6)
Для просмотра содержимого биоса пользуюсь программой amibcp.exe 7.51.03 (554336Byte)
Я искал место куда могу вставить свой кусок кода. Для моих нужд самым приемлимым вариантом будет вставка кода как раз перед передачей управления на MBR(0000:7C00). Распаковав каждый модуль (c помощью amibcp) и порывшись я нашёл что считывание MBR происходит в модуле runtime.
И тут у меня возникает несколько вопросов:
0) Какой порядок исполнения модулей в AMI Bios.
1) может ли мой код повлиять/испортить выполнение BIOS(учитывая что я пользуюсь 4kb буфеом в памяти и могу ли я вообще использовать память на момент исполнения моего кода)
как мне стоить добавить этот модуль в файл прошивки (с помощью amibcp)
как dynamic либо с фиксированным адресом ка например у runtime.
Какой указывать адрес в случае выбора фиксированного участка загрузки чтобы выполнение моего кода не повлияло на работу других модулей.
2) Нужно ли придерживаться определённой структуры для написания своих модулей для ami (имя заголовок CRC и т д )
ну и часть репорта(amibcp) может кому что-нибуудь подскажет что делать в этом случае
AMIBIOS ROM Information Report Name:VIA_P6 ROM File:E030123S.ROM File:repo2.dat Thu Mar 24 18:39:38 2005 BIOS MODULES ------------ (those marked '>' are compressed module) BIOS Version : 0700 BIOS Date : 01/24/03 BIOS Tag : P4VMM2 BIOS Size : 256 Kb Module ID/Name RomLoc SourceSize SizeInRom %% RunLoc INIT F000:C000 04000(016384) 04000(016384) 00.00 ---- ---- NVRAM/ESCD F000:8000 04000(016384) 04000(016384) 00.00 ---- ---- AMD SIP ROM F000:7E00 00200(000512) 00200(000512) 00.00 ---- ---- >02 Runtime F090:0006 0A3E0(041952) 074E2(029922) 28.68 F000:5C20 08 Interface F01E:000C 00706(001798) 0071A(001818) 00.00 Dynamic >00 POST EB92:000E 05BD6(023510) 048BE(018622) 20.79 F000:0000 >03 DIM E831:0004 04E18(019992) 0361A(013850) 30.72 E000:B1E0 >04 Setup Client E5F2:0004 03898(014488) 023F0(009200) 36.50 Dynamic >01 Setup Server E3EF:000D 02F12(012050) 02027(008231) 31.69 F000:0000 06 DMI Data E3C0:0002 002E7(000743) 002FB(000763) 00.00 Dynamic >09 MP E385:0005 0048A(001162) 003AD(000941) 19.02 Dynamic >0A Notebook D9B4:000A 10000(065536) 09D0B(040203) 38.66 Dynamic >0D Int-13 D498:0009 06C95(027797) 051C1(020929) 24.71 Dynamic >0F ACPI Table D45E:0006 0988E(039054) 003A3(000931) 97.62 Dynamic >10 ACPI AML D31A:0002 02E31(011825) 01444(005188) 56.13 Dynamic >12 Configuration D289:0007 00A6A(002666) 0090B(002315) 13.17 Dynamic >13 DMI Code D1F2:000A 00BBA(003002) 0096D(002413) 19.62 Dynamic 11 P6 Micro Code CD70:000E 04808(018440) 0481C(018460) 00.00 Dynamic >3C UserDefined CD2B:0002 0059C(001436) 0045C(001116) 22.28 Dynamic >32 Image Dsiplay Code CD0B:000E 002FF(000767) 001F4(000500) 34.81 Dynamic >31 EPA / OEM Logo CC85:000A 011B1(004529) 00864(002148) 52.57 Dynamic 0C ROM-ID CC83:000E 00008(000008) 0001C(000028) 00.00 Dynamic >60 ASCII Font CC2F:0000 01000(004096) 0054E(001358) 66.85 Dynamic >52 Language 2 CB29:0008 0246A(009322) 01058(004184) 55.12 Dynamic >20 PCI AddOn ROM C467:000B 0C000(049152) 06C1D(027677) 43.69 8D04:5333 >20 PCI AddOn ROM C1B6:000B 04000(016384) 02B10(011024) 32.71 3065:1106 50 Default Language C1B2:0003 00034(000052) 00048(000072) 00.00 Dynamic 51 Language 1 C1AD:0005 0003A(000058) 0004E(000078) 00.00 Dynamic >2A UserDefined C15A:0003 0073F(001855) 00532(001330) 28.30 5000:0000 Bytes Used 03EA65 ( 256613) Bytes Free 00159B ( 5531)
P.S. Попутно собираю базу прошивок AMI , Phoenix и ASUS(преимущественно ноутбуков) для выковыривания оттуда заводских паролей(если таковые имеются).
C уважением Виктор.
По идее, начиная с V7.00.xx что-то должно сработать. Были слухи, что в AMIBIOSC0700 впервые появилась поддержка для работы в Win. Мож в этом проблема? (А может и нет ...)
Пользовался я изначально amibcp.exe 7.51.03 под DOS.
Посмотрел репорт - выглядит это конечно всё красиво но не даёт программа изменять все модули. Может я что-то не так делаю?
C уважением Виктор.
Есть ли где в природе примеры в которых показано как раскладывать вручную AMIBIOS ROM на модули?
Сколько не искал находил только по award'am.
Возможно кто-нибудь знает структуру AMIBIOS ROM, либо знает где можно скачать инструмент с помощью которого биосописатели AMIBIOS работают с прошивками?
С уважением Виктор.
Виктор X
а Вы AMIBCP 2.25 под Винду использовали?
где-то в форуме на энтот редактор давали линк. Не знаю как у него с поддержкой AMIBIOSC0700, но 6-й АМИ он открывал....
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Всё что нашёл на bnobtc.pix-art.com/en/ перепробовал:
(попробую скачать весь архив целиком может найду чего полезного для AMI)
1) amibcp.exe 7.51.03 (554336Byte) чудесно всё открывает показывает модули позволяет их распаковывать показывает необходимую инфу об адресе памяти куда этот модуль распаковывается но править все модули а именно runtime не даёт.
2) amibcp.exe 7.60.04 (555041Byte) тоже что и в первом случае.
3) amibcp 2.25 (под Windows) предлагает окно для открытия файла. При нажатии открыть (ROM BIOS ничего полезного не происходит. Выглядит всё так же как и при запуске программы. Не знаю что она там делает но никакого окна и информации об ROM она не выводит(в моём случае).
Поэтому я и перешёл на mmtool под Windows. (Как для меня работать с ROM BIOS ами под Windows не очень удобно - я для экспериментов себе поставил VMWare под Linux и из под VMWаre создал Virtual Mashine c DOS. Туда все инструменты (tasm disasm idapro hiew и прочее(единственно что у меня не заработало это fasm - flat assembler 1.60) - прошивть я конечно не прошиваю но для экспериментов с ROM вполне хватает).
Поставил я себе и Virtual Mashine c Windows 2000, но заметил несколько неприятных особенностей - очень ресурсоёмкая эта VMWare и постоянно увеличивается в памяти, в процессе работы использует кэш, его и увеличивает пока не потребит всю память. потом начинает забирать swap и у меня начинаются глюки с ТВ Тюнером. В общем приходится периодически выходить из под X чтобы освободился кэш.
С уважением Виктор.
Для АМИ есть чудесная утилитка AMI_DECO (от ami decompilator).
Она написана Veit'ом Kannegieser'ом и есть в архиве Борга...
Позволяет просто по полочкам разложить АМИшный бивис, но не более
Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P
Скачал архив с bnobtc.pix-art.com/en/ (bnobtc.pix-art.com/bnobtcv5.rar) пересмотрел всё касательно AMI. Единственно ччто ещё не пробовал amimm. Но как и было описано выше это оказалась очень старая версия утилиты amibcp.
C уважением Виктор.
Порылся я тут на форуме касательно AMI и нашёл пост с видом работающей amibcp 2.25 beta под Windows. rom.by/phpBB2/viewtopic.php?t=4307
Попробовал считать свой ROM Bios файл ещё раз - к сожалению без успеха - тоесть вообще ничего не происходит никакого окна как на рисунке в вышеописанном посте,вообще ничего. (операционка Windows 2000 Pro)
У кого-нибудь будь были подобные симптомы? Хочу выяснить в чём трабл - уж больно картинка в псте глаз радует но с моим ROM файлом не работает.
С уважением Виктор.
Раз позволяет разложить, значит думаю можно было бы и сложить.
И вообще у меня тут идея созрела. Обчитался я форума и вижу что с AMI сплошные проблемы. Идея такая - для того чтобы было легче работать с AMI Bios прошивками можно сделать следующее.
Повытаскивать все модули и либо написать собственную систему паковки распаковки модулей и передавать на них управление в указанном порядке (в том же в котором они выполняются в AMI) либо взять эти уже существующие модулди и собрать это всё так же как собираются Award ROM Bios'ы при этом изменив единственное место паковки и распаковки, возможно ещё что либо по проверке контрольных сумм модулей.
Как результат будет Award структура биоса работать с которой намного проще но всё это будет с оригинальной начнкой AMI (модули). Возможно ещё прийдётся поменять BootBlock секцию. Возможна проблема если внутри каких либо AMI модулей есть проверки на местоположение оного в ROM BIOS(или точнее уже в памяти).
И будет это уже гибрид с которым намного проще работать утилитами от широкоописанного формата Awarda. Думаю что такой BIOS должен работать ибо всё это суть - код вне зависимости от того кто его пишет.
С уважением Виктор.
В общем AmiDeco (Decompressor) лежит здесь:
biosgfx.narod.ru/v3/index.html
А вот Сompressor как бы есть, но на самом деле его нет...
Если б я шарил в асме, то попытался бы списаться с автором, а так ограничился только поковырянием...
В кривых руках и коврик глючит.
Отправить комментарий