BIOStrip - пишем программу для удаления/добавления модулей в BIOS

"Сначала было слово"
www.rom.by/forum/Shell_Cbrom



Эта ветка форума посвящена процессу создания программы BIOStrip.

Назначение программы:
- прочитать файл с прошивкой
- выбрать плагин для препарирования файла прошивки
- записать отредактированную прошивку в файл
- копировать все упакованные модули в виде отдельных файлов
- копировать текущий (упакованный или распакованный) модуль в файл
- добавить новый модуль в прошивку
- удалить модуль из прошивки
- переставить соседние модули в прошивке
- др. 


Другими словами, функционально BIOStrip - это универсальный cbrom с графическим интерфейсом.
Универсальность реализуется через расширяемый набор плагинов.

PS
"Наши цели ясны, задачи определены. За работу, товарищи!" (Все встают.) 

В последующих версиях оболочка будет поддерживать многоязычный интерфейс
Это реализовано посредством переноса всех ресурсов программы (меню, диалоги, строки) в отдельную динамическую библиотеку BIOStripRes.dll, которая загружается оболочкой при старте. Эта dll должна находиться в одной папке с оболочкой BIOStrip.exe
Теперь для смены языка достаточно сменить только BIOStripRes.dll на новую. 
Пока существует только один экземпляр - английский.

PS
Всё вышесказанное не относится к плагинам. Но ничто не мешает эту же технологию использовать и для них.

В процессе всенародного обсуждения проявились следующие типы плагинов:
1-й тип - плагины, которые не работают с прошивкой (например, BsPciProbe)
2-й тип - плагины, не учитывающие модульную структуру прошивки (BsCrc, BsIntelGlue)
3-й тип - плагины, учитывающие модульную структуру прошивки (BsAward)

В связи с этим интерфейс IPlugin упростился, но появились два новых интерфейса - IBiosImage и IBiosModules. Теперь плагины 1-го типа должны реализовывать только интерфейс IPlugin, 2-го типа - IPlugin и IBiosImage, 3-го типа - IPlugin, IBiosImage и IBiosModules.

Для MS Visual Studio v.6.0 планируется изменить визард WizBs.awx таким образом, чтобы он умел создавать заготовки проектов для плагинов трех типов.

Программисты могут ознакомиться с интерфейсами (см. файл plugin.h). Сейчас идет доработка оболочки и визарда.

Предлагается для ознакомления очередная альфа-версия оболочки BIOStrip.exe (v.1.1).
Теперь она умеет работать с плагинами всех трех типов.

Выкладываю исходные тексты для двух простых плагинов:

BsCalendar - плагин (тип 1), с прошивкой не работает. Создан в тестовых целях.
BsCrc - плагин (тип 2), считает CRC-8 для заданного пользователем диапазона адресов прошивки.

Плагин BsAwardTest переделан в тип 3, его исходные тексты выкладывать пока рано.

Заготовки этих проектов были созданы с помощью новой версии визарда WizBs.awx (старую версию нужно смело удалить).

Итак, архитектурные изыскания для программы практически завершены.
Оболочка стабилизируется, сейчас она вполне рабочая.
Процесс создания плагинов максимально автоматизирован с помощью визарда. Желающие могут попробовать.

Формальное замечание
CRC - cyclic redundancy check
Checksum - контрольная сумма
Может поправить название плагина, чтобы дальше не путаться.

Согласен.

Плагин BsCrc будет переименован в BsHash.

При желании набор реализованных алгоритмов контрольного суммирования можно будет расширять. Надо будет прикрутить к нему какую-нибудь готовую крипто-библиотеку.



И чтобы два раза не вставать.

1. Плагин BsIntelGlue - относится к 1-му типу, а не ко 2-му. Он не использует образ BIOS, который был прочитан оболочкой из файла. Он самостоятельно создает такой файл. А вот уже после того, как файл создан, его содержимое можно будет "скормить" другим плагинам (3-го типа).

2. Кнопка Parse исчезла. Теперь парсинг прошивки выполняется автоматически, если плагин относится к 3-му типу. 

santa и maco - респект 

Сегодня у оболочки появился новый дополнительный интерфейс - IMemport.

Теперь у плагинов есть доступ к любому участку физической памяти, а также ко всем портам ввода-вывода.

Этот интерфейс будет полезен, например, при создании плагина BsReadFlash (чтение прошивки BIOS Вашего компьютера), а также для любых других плагинов, которым требуется доступ к железу.

Родился ещё один новый дополнительный интерфейс оболочки - IPci.

Он появился на свет для обслуживания плагина BsPciProbe.
Интерфейс состоит из функций, обеспечивающих доступ к конфигурационным регистрам Pci-устройств. Идет тестирование.

Реализованный в оболочке интерфейс  IMemport позволил легко создать плагин BsCmos для чтения регистров CMOS.

Интерфейс  IMemport используется в плагине BsReadFlash, который предназначен для чтения прошивки BIOS. 

Этот плагин требует записи в конфигурационные регистры устройств чипсета (через интерфейс IPci), чтобы полностью отобразить адресное пространство в конце 4гб, занятое флэшкой. Настройка чипсета для чтения всей флэшки пока не реализована, сейчас правильно читается только последние 64кб.



Можно читать и видео BIOS.

Цитата:
Реализованный в оболочке интерфейс  IMemport позволил легко создать плагин BsCmos для чтения регистров CMOS.

Strelets,
А как под ХР прочитать CMOS, через 70/71 он же не позволяет?

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

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

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

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