<font size="1">"Сначала было слово"
</font><font size="1">www.rom.by/forum/Shell_Cbrom</font>
Эта ветка форума посвящена процессу создания программы <font color="#3366ff">BIOStrip</font>.
Назначение программы:
- прочитать файл с прошивкой
- выбрать плагин для препарирования файла прошивки
- записать отредактированную прошивку в файл
- копировать все упакованные модули в виде отдельных файлов
- копировать текущий (упакованный или распакованный) модуль в файл
- добавить новый модуль в прошивку
- удалить модуль из прошивки
- переставить соседние модули в прошивке
- др. ![]()
<font color="#3366ff"><font color="#000000">Другими словами, функционально</font> BIOStrip </font>- это универсальный cbrom с графическим интерфейсом.
Универсальность реализуется через расширяемый набор плагинов.
PS
<font size="1">"Наши цели ясны, задачи определены. За работу, товарищи!" (Все встают.) ![]()
</font>
В последующих версиях оболочка будет поддерживать многоязычный интерфейс.
Это реализовано посредством переноса всех ресурсов программы (меню, диалоги, строки) в отдельную динамическую библиотеку <font color="#0000ff">BIOStripRes.dll</font>, которая загружается оболочкой при старте. Эта dll должна находиться в одной папке с оболочкой BIOStrip.exe
Теперь для смены языка достаточно сменить только BIOStripRes.dll на новую.
Пока существует только один экземпляр - английский.
PS
Всё вышесказанное не относится к плагинам. Но ничто не мешает эту же технологию использовать и для них.
В процессе всенародного обсуждения проявились следующие типы плагинов:
1-й тип - плагины, которые не работают с прошивкой (например, <font color="#0000ff">BsPciProbe</font>)
2-й тип - плагины, не учитывающие модульную структуру прошивки (<font color="#0000ff">BsCrc, BsIntelGlue</font>)
3-й тип - плагины, учитывающие модульную структуру прошивки (<font color="#0000ff">BsAward</font>)
В связи с этим интерфейс <font color="#339966">IPlugin </font>упростился, но появились два новых интерфейса - <font color="#339966">IBiosImage</font> и <font color="#339966">IBiosModules</font>. Теперь плагины 1-го типа должны реализовывать только интерфейс IPlugin, 2-го типа - IPlugin и IBiosImage, 3-го типа - IPlugin, IBiosImage и IBiosModules.
Для MS Visual Studio v.6.0 планируется изменить визард WizBs.awx таким образом, чтобы он умел создавать заготовки проектов для плагинов трех типов.
Программисты могут ознакомиться с интерфейсами (см. файл plugin.h). Сейчас идет доработка оболочки и визарда.
Предлагается для ознакомления очередная альфа-версия оболочки <font color="#0000ff">BIOStrip.exe (v.1.1)</font>.
Теперь она умеет работать с плагинами всех трех типов.
Выкладываю исходные тексты для двух простых плагинов:
<font color="#0000ff">BsCalendar</font> - плагин (тип 1), с прошивкой не работает. Создан в тестовых целях.
<font color="#0000ff">BsCrc </font>- плагин (тип 2), считает CRC-8 для заданного пользователем диапазона адресов прошивки.
Плагин <font color="#0000ff">BsAwardTest </font>переделан в тип 3, его исходные тексты выкладывать пока рано.
Заготовки этих проектов были созданы с помощью новой версии визарда <font color="#0000ff">WizBs.awx</font> (старую версию нужно смело удалить).
Итак, архитектурные изыскания для программы практически завершены.
Оболочка стабилизируется, сейчас она вполне рабочая.
Процесс создания плагинов максимально автоматизирован с помощью визарда. Желающие могут попробовать.
CRC - cyclic redundancy check
Checksum - контрольная сумма
Может поправить название плагина, чтобы дальше не путаться.
Плагин BsCrc будет переименован в <font color="#0000ff">BsHash</font>.
При желании набор реализованных алгоритмов контрольного суммирования можно будет расширять. Надо будет прикрутить к нему какую-нибудь готовую крипто-библиотеку.
И чтобы два раза не вставать.
1. Плагин <font color="#0000ff">BsIntelGlue</font><font color="#000000"> - относится к 1-му типу, а не ко 2-му. Он не использует образ BIOS, который был прочитан оболочкой из файла. Он самостоятельно создает такой файл. А вот уже после того, как файл создан, его содержимое можно будет "скормить" другим плагинам (3-го типа).
2. Кнопка <font color="#993300">Parse </font>исчезла. Теперь парсинг прошивки выполняется автоматически, если плагин относится к 3-му типу.
santa и maco - респект
Теперь у плагинов есть доступ к любому участку физической памяти, а также ко всем портам ввода-вывода.
Этот интерфейс будет полезен, например, при создании плагина <font color="#3366ff">BsReadFlash</font> (чтение прошивки BIOS Вашего компьютера), а также для любых других плагинов, которым требуется доступ к железу.
Родился ещё один новый дополнительный интерфейс оболочки - <font color="#99cc00">IPci</font>.
Он появился на свет для обслуживания плагина <font color="#3366ff">BsPciProbe</font>.
Интерфейс состоит из функций, обеспечивающих доступ к конфигурационным регистрам Pci-устройств. Идет тестирование.
Реализованный в оболочке интерфейс <font color="#99cc00">IMemport </font>позволил легко создать плагин <font color="#3366ff">BsCmos </font>для чтения регистров CMOS.
Этот плагин требует записи в конфигурационные регистры устройств чипсета (через интерфейс <font color="#99cc00">IPci</font>), чтобы полностью отобразить адресное пространство в конце 4гб, занятое флэшкой. Настройка чипсета для чтения всей флэшки пока не реализована, сейчас правильно читается только последние 64кб.
Можно читать и видео BIOS.
Strelets,
А как под ХР прочитать CMOS, через 70/71 он же не позволяет?