Смена кода биоса / перепрошивка биоса - PullRequest
11 голосов
/ 19 августа 2011

Я потратил много времени на разработку операционной системы и работу над моим низкоуровневым загрузчиком.Но теперь я хочу отвлечься от своей операционной системы, не выходя из низкоуровневой среды и занимаясь чем-то, связанным с безопасностью.

Поэтому я решил создать свою собственную стандартную утилиту паролей, следуя схеме предварительной загрузки.Поскольку я хочу, чтобы программное обеспечение было хотя бы немного портативным, я хочу использовать как можно меньше внешней поддержки.Я подумал, что было бы лучше, если бы мне как-то удалось «зацепить» биос где-то между самопроверками и загрузчиком int 19 изнутри операционной системы реального режима.

Однако найти информацию о том, как изменить код BIOS, оказалось невозможно.Я ничего не нашел о том, как достичь ранее упомянутого.Я нашел только страницы, описывающие, как прошить ваш биос.

Кто-нибудь знает, как я могу читать / писать код BIOS?Или кто-то может предоставить ссылки на страницы, которые описывают это?

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

Ответы [ 3 ]

4 голосов
/ 20 августа 2011

Pinczakko статьи о реверс-инжиниринге BIOS - отличное место, чтобы начать смотреть на это.Была также книга , опубликованная тем же автором, но она вышла из печати. ​​

Я не уверен, является ли этот подход лучшим подходом к безопасной загрузке, но статьина этом сайте очень подробно и должны указать вам способ изменения прошивки BIOS.

3 голосов
/ 19 августа 2011

Я не совсем уверен, чего вы пытаетесь достичь, но:

BIOS полностью зависит от аппаратного обеспечения - у каждого производителя будет свой механизм обновления / перепрошивки BIOS, и поэтому он пытается найтипортативный механизм для обновления BIOS предназначен для сбоя.Например, при использовании Bochs вы «обновляете» BIOS, указав другой образ ПЗУ BIOS.

Если вы хотите изменить / записать свой собственный BIOS, то он будет полностью соответствоватьаппаратное обеспечение.Лучше всего начать с чего-то вроде Bochs в качестве открытого исходного кода - поскольку вы можете взглянуть на исходный код для BIOS (и легко его протестировать / отладить), у вас есть разумный шанс понять код BIOS и изменить его.в то, что работает, однако я подозреваю, что это не то, что вы пытаетесь сделать.

Почему бы просто не выполнить эту аутентификацию при загрузке вашей ОС?Если вы хотите защитить данные, вы должны зашифровать их и потребовать, чтобы пользователь предоставил логин / ключ дешифрования при запуске.

2 голосов
/ 20 августа 2011

Если вы думаете о работе с «устаревшим» BIOS ПК, я бы отговорил вас от попыток по многим причинам, упомянутым Джастином: 1) устаревший BIOS зависит от производителя ПК;2) это закрытый исходный код и собственность;3) не существует отраслевых стандартов, определяющих устаревшие интерфейсы BIOS для расширения системы, как вы пытаетесь это сделать.

С другой стороны, если у вас есть доступ к BIOS на базе UEFI .Вы можете написать свой собственный драйвер (ы) PEI / DXE для реализации такой функции.Это, по крайней мере, укажет вам правильное направление:

http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=Welcome

Книга Intel Press на тему: Beyond BIOS

Относительно практичностидля чтения / записи BIOS вам необходимо определить часть SPI, связывающую BIOS, и получить пишущий привод ROM .Часть SPI может или не может быть розетка;если это не сокет, вам понадобится паяльник и вы сможете создать гнездо / заголовок для детали.Вы, очевидно, не хотите вступать в этот проект с вашей основной компьютерной системой.Возможно, вы могли бы найти более старую систему или справочную плату.

...