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

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



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

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


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

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

Скриншот и ссылка для скачивания альфа-версии программы.

Предлагается обсудить практическую ценность реализации следующих плагинов.

1. BsCrc - плагин для расчета CRC (по пожеланию Baza)
 - читаем файл (с помощью оболочки)
 - вызываем плагин
 - указываем диапазон адресов
 - указываем алгоритм вычисления CRC
 - вычисляем CRC, печатаем в лог оболочки

2. BsIntelGlue - плагин для склеивания биос Intel из файлов *.bio, *.bi*
 rom.by/forum/ФАК_Интеловские_БИОСы
 - вызываем плагин
 - указываем папку с файлами *.bio, *.bi*
 - склеиваем образ прошивки


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

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

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

5. BsWriteFlash - плагин для перепрошивки BIOS Вашего компьютера
 - читаем файл (с помощью оболочки)
 - вызываем плагин
 - анализируем железо Вашего компьютера
 - записываем образ прошивки BIOS в флэш-память
 - перезагружаем компьютер
 - no comments 

6. Др. - ваши предложения?

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

Цитата:
Предлагается обсудить практическую ценность реализации следующих плагинов.

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

1) Bit от stargaz0r'а для Award'ов вполне сам высчитывает CRC модулей УЖЕ собранного БИОСа.
2) для начала надо понять какой алгоритм сборки "правильный" - так что это к ув. maco
3) нафиг. Craig Hurt's PCI32 или Alter'овский PciDump вполне справляется с этой функцией. И сразу же нужна возможность подгружать список с соответствием м/у VenID/DevID и у-вом из файла...
4) аналогично. Bit или Uniflash.
5) Uniflash и его ромбайские эдишны.
Так что я даже не знаю....

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

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

To Root: Ну привычки и изменить не долго...

А так на вид ничего инструментик. Из замечаний - кнопка "Парсинг" имхо лишняя, автоанализ нужно включать сразу после выбора плагина(plugin), ради красивости хорошо бы сделать веселую расцветку расположения модулей прошивки. Блок микрокодов процессора (сейчас это модно) не видно.

Огромный плюс то, что можно менять/заменять/удалять /вставлять Original.bin. только ради этого стоило трудится...+1

-=Кто сказал что бесполезно биться головой об стену...=- (НП)
Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн
Хочешь сделать хорошо - сделай это сам

Root
Это все, конечно, полезно и нужно, но только при одном раскладе - что каждый из плагинов будет полностью заменять отдельные программы и быть даже лучше, чем они. В противном случае с уже наработанного инструментария МЕНЯ фиг пересадишь.

Полностью разделяю Вашу позицию.

По поводу п.1,2,3. Цитата - "Пусть расцветают сто цветов".
Никакого вреда не будет, если какой-то плагин будет функционально эквивалентен уже существующей программе. Но при этом для пользователя появляются плюсы:
- "всё в одном флаконе" (в папке Plugins )
- возможность воспользоваться дополнительными возможностями (если они есть), которые предоставляет плагин
- доступ к исходным текстам (можно ознакомиться с алгоритмом, подправить, дополнить)
- обсудить проблемы с конкретным разработчиком плагина (обсудить здесь, на этом сайте)

По поводу п.4,5. Это весьма амбициозные проекты, хотя и вполне реализуемые. Они потребуют отдельного обсуждения.

По поводу п.6. Уважаемый Root, каких новых инструментов Вам не хватает в вашем богатом инструментарии при решении практических задач?

Santa
кнопка "Парсинг" имхо лишняя, автоанализ нужно включать сразу после выбора плагина(plugin)
Не согласен. Не каждый плагин будет предназначен для парсинга прошивки.

Santa

ради красивости хорошо бы сделать веселую расцветку расположения модулей прошивки.
Вы можете предложить варианты расцветки (в виде граф. файла)? Рассмотрим, утвердим, вставим в программу. 

Santa
Блок микрокодов процессора (сейчас это модно) не видно.
Дайте, пожалуйста, ссылку на биос, в котором это проявляется.

На мой взгляд пункты 1, 2, 3 актуальны в плане ускорения процесса обработки/анализа прошивки. Пункты 4, 5 достаточно трудоемки и не пока не очень актуальны в данном "флаконе", в принципе "за", но только после доведения до нормального состояния основных компонентов.
По пункту 2 - добавить указание алгоритма "склейки", можно попытаться автоматизировать, но в этом случае придется либо выделять характерные зоны, либо действовать методом перебора и автоматического анализа полученного образа (например, попытка открыть как AMI'шный BIOS, кстати, не всегда будет работать).
Хотелось бы добавить возможность сравнения образа и внешнего файла с указанием диапазона адресов, а еще возможность автоматического поиска определенного участка из внешнего файла/образа в образе/внешнем файле.
По поводу кнопок "Parse", "Up", "Down" - лишние.

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

Strelets

Цитата:
Вы можете предложить варианты расцветки (в виде граф. файла)? Рассмотрим, утвердим, вставим в программу.

А ля Awdbedit..

Цитата:
Цитата:
Блок микрокодов процессора (сейчас это модно) не видно.

Дайте, пожалуйста, ссылку на биос, в котором это проявляется.

Есть несколько прошивок от 865/945 чипсетов - нигде нет. -> Ссылки давать не имеет смысла...

maco Кнопки туда/сюда не лишние - пусть останутся. (иначе и original.bin на место не поставить :))

-=Кто сказал что бесполезно биться головой об стену...=- (НП)
Пх’нглуи мглв’нафх Ктулху Р’льех вгах’нагл фхтагн
Хочешь сделать хорошо - сделай это сам

Santa
Цитата:
туда/сюда не лишние - иначе и original.bin на место не поставить

Может проще вставлять сразу куда надо, чем потом переставлять;).

Strelets
Цитата:
Не каждый плагин будет предназначен для парсинга прошивки

Пусть плагины, которые предназначены для парсинга прошивки, автоматически пытаются это делать.

Итак, у Вас есть оболочка BIOStrip.exe и яростное желание написать собственный плагин.
С чего начать?

Для яростных плагинописателей, знакомых с MS Visual Studio v.6.0, предлагается специальный визард (мастер) WizBs.awx .
Визард WizBs.awx предназначен для создания заготовки плагина, который будет работать под управлением оболочки BIOStrip.exe
Визард WizBs.awx необходимо скопировать в папку MS Visual Studio v.6.0: Program Files\Microsoft Visual Studio\Common\MSDev98\Template\
После этого он будет появляться в списке других визардов MS Visual Studio при создании нового проекта: File/New.../закладка_Projects

Основные правила и рекомендации:
1. Имя плагина желательно начинать с префикса Bs (например, BsCoolPlugin)
2. Новый проект необходимо создавать в той же папке, где находится оболочка BIOStrip.exe, на одном уровне (рядом) с папкой Plugins
3. В папке Plugins должен быть файл plugin.h (его редактировать нельзя!)
4. После создания с помощью этого визарда нового проекта желательно изменить настройки проекта так, чтобы получающаяся dll записывалась в папку Plugins. Для этого в поле Poject_Settings/закладка_Link/поле_Output_File_Name необходимо указать ../Plugins/имя_плагина.dll

Внимание! Интерфейс IPlugin еще не устаканился. Поэтому возможны изменения и появление новых версий визарда.

Желаю удачи!

 

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

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

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

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