Я пытался узнать немного больше о USB-накопителях, и мне любопытно узнать их MBR.

По сути, я открываю файл устройства USB-накопителя и даю шестнадцатеричный дамп первых 496 байтов файла. Я знаю, что адреса 0x1fe и 0x1ff содержат байты 55 и aa соответственно и что они отмечают конец "основной загрузочной записи". Однако я не совсем уверен, что такое основная загрузочная запись.

Насколько я могу сказать, когда USB подключен, BIOS выполняет инструкции, хранящиеся в MBR - это правильно? Тем не менее, на большинстве флешек, которые я видел, либо были пустые загрузочные сектора загрузочных секторов, заполненные предупреждениями, такими как «BOOTMGR not present». Почему редко существует жизнеспособный код?

Мне также интересно, для какого процессора написан код в MBR. Это 16 бит? 32 бит? 64 бит?

Извините, если я показываю незнание предмета; Я относительно новичок в оборудовании. Заранее благодарю за ваши ответы.

1 ответ1

0

Я не знаю , почему вы смотрите на первые 496 байтах, так как Master Boot Record (MBR) был всегда был 512 байт в размере и находится в секторе 0 (первый сектор) устройства хранения данных.

Что делает MBR, так это сообщает вашей ОС о структуре разделов вашего устройства хранения, и он также содержит исполняемый код (загрузчик), который инструктирует компьютер о том, как загрузить операционную систему.

Загрузчик появляется только тогда, когда вы действительно пытаетесь загрузиться с USB-накопителя. Например, если вы пытались установить Windows с USB-накопителя, который вы загрузили с помощью программного обеспечения, такого как Rufus. Вы можете узнать больше о структуре MBR, прочитав статью в Википедии о MBR.

Вот как выглядит MBR на моей отформатированной флешке NTFS:Разделы MBR

Возможно, вы ошиблись, когда сказали, что видели пустые загрузочные секторы. BOOTMGR not present вы видите в MBR, не указывает на отсутствие MBR на флэш-накопителе.

Фактически, это сообщение об ошибке, которое отображается пользователю, когда он пытается загрузиться с флэш-накопителя, когда он не настроен для загрузки.

В прошлом MBR эксплуатировалось несколькими вирусами загрузочного сектора, такими как Stoned и Brain , которые показывали бы строки, такие как Your computer is now stoned при загрузке компьютера. вирус загрузочного сектора

Что касается вашего вопроса об архитектуре процессора, для которой написан код загрузчика, я не совсем уверен, что ответ, но я подозреваю, что код скомпилирован с использованием 16-разрядного компилятора, который будет выполняться процессором в реальном режиме (16-битный режим).

Возможно, вы захотите посмотреть на этот вопрос SuperUser для получения дополнительной информации.

Если вы заинтересованы в получении дополнительной информации о загрузчиках, вы можете попробовать создать их самостоятельно, следуя инструкциям в этой чрезвычайно информативной статье о CodeProject:

How to develop your own Boot Loader


Некоторая дополнительная информация:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .