Добавить код или работа с модулями AMI Bios

Модули 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.


Но тут меня постиг небольшой обломс, потому-что этот модуль amibcp править не даёт(а алогритма паковки модулей в ami bios я на текущий момент не знаю - но вероятно через определённое время порывшись с idapro сумею его описать).
Поэтому я решил добавить уже свой кусок кода в модуль. Этот кусок кода у меня выполняет некоторые операции по работе с CMOS и HDD(cчитывание запись или точнее критовка раскриптовка критичной для меня информации) - код небольшой около 512 байт и я использую буфера в памяти для считывания/записи.

И тут у меня возникает несколько вопросов:
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. Мож в этом проблема? (А может и нет ...)

Игорь Турусов писал(-а):
По идее, начиная с V7.00.xx что-то должно сработать. Были слухи, что в AMIBIOSC0700 впервые появилась поддержка для работы в Win. Мож в этом проблема? (А может и нет ...)

Пользовался я изначально amibcp.exe 7.51.03 под DOS.
Посмотрел репорт - выглядит это конечно всё красиво но не даёт программа изменять все модули. Может я что-то не так делаю?

C уважением Виктор.

Есть ли где в природе примеры в которых показано как раскладывать вручную AMIBIOS ROM на модули?
Сколько не искал находил только по award'am.

Возможно кто-нибудь знает структуру AMIBIOS ROM, либо знает где можно скачать инструмент с помощью которого биосописатели AMIBIOS работают с прошивками?

С уважением Виктор.

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

Виктор X
а Вы AMIBCP 2.25 под Винду использовали?
где-то в форуме на энтот редактор давали линк. Не знаю как у него с поддержкой AMIBIOSC0700, но 6-й АМИ он открывал....

Аццкий ромбовод {:€
Я пока не волшебник - я только учусь! :-P

Root писал(-а):
Виктор X
а Вы AMIBCP 2.25 под Винду использовали?
где-то в форуме на энтот редактор давали линк. Не знаю как у него с поддержкой AMIBIOSC0700, но 6-й АМИ он открывал....

Всё что нашёл на 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 чтобы освободился кэш.

С уважением Виктор.

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

Для АМИ есть чудесная утилитка 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 файлом не работает.

С уважением Виктор.

Root писал(-а):
Для АМИ есть чудесная утилитка AMI_DECO (от ami decompilator).
Она написана Veit'ом Kannegieser'ом и есть в архиве Борга...
Позволяет просто по полочкам разложить АМИшный бивис, но не более:(

Раз позволяет разложить, значит думаю можно было бы и сложить.


И вообще у меня тут идея созрела. Обчитался я форума и вижу что с AMI сплошные проблемы. Идея такая - для того чтобы было легче работать с AMI Bios прошивками можно сделать следующее.
Повытаскивать все модули и либо написать собственную систему паковки распаковки модулей и передавать на них управление в указанном порядке (в том же в котором они выполняются в AMI) либо взять эти уже существующие модулди и собрать это всё так же как собираются Award ROM Bios'ы при этом изменив единственное место паковки и распаковки, возможно ещё что либо по проверке контрольных сумм модулей.
Как результат будет Award структура биоса работать с которой намного проще но всё это будет с оригинальной начнкой AMI (модули). Возможно ещё прийдётся поменять BootBlock секцию. Возможна проблема если внутри каких либо AMI модулей есть проверки на местоположение оного в ROM BIOS(или точнее уже в памяти).
И будет это уже гибрид с которым намного проще работать утилитами от широкоописанного формата Awarda. Думаю что такой BIOS должен работать ибо всё это суть - код вне зависимости от того кто его пишет.

С уважением Виктор.

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

В общем AmiDeco (Decompressor) лежит здесь:
biosgfx.narod.ru/v3/index.html
А вот Сompressor как бы есть, но на самом деле его нет...
Если б я шарил в асме, то попытался бы списаться с автором, а так ограничился только поковырянием...

В кривых руках и коврик глючит.

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

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые 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.

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

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