Загрузочный сектор - Boot sector
Эта статья требует внимания эксперта в области вычислений.Июнь 2011 г.) ( |
А загрузочный сектор это сектор стойкого устройство хранения данных (например., жесткий диск, дискета, оптический диск и т. д.), который содержит Машинный код быть загруженным в оперативная память (RAM), а затем выполняется компьютерная система встроенный прошивка (например, BIOS, Das U-Boot, так далее.).
Обычно самый первый сектор жесткого диска является загрузочным, независимо от размера сектора (512 или 4096 байт) и типа разделения (MBR или GPT).
Цель определения одного конкретного сектора как загрузочный сектор это взаимодействие между различными прошивками и различными операционными системами.
Целью последовательной загрузки сначала микропрограммы (например, BIOS), затем некоторого кода, содержащегося в загрузочном секторе, а затем, например, операционной системы, является максимальная гибкость.
IBM PC и совместимые компьютеры
На Совместимость с IBM PC машина, BIOS выбирает загрузочное устройство, затем копирует первый сектор с устройства (который может быть MBR, VBR или любой исполняемый код) в физическая память в адрес памяти 0x7C00. В других системах процесс может быть совершенно другим.
Единый расширяемый интерфейс микропрограмм (UEFI)
В Унифицированный расширяемый интерфейс встроенных микропрограмм Спецификация (UEFI) определяет новый способ загрузки операционной системы. Кроме того, спецификация UEFI также содержит «безопасную загрузку», которая в основном требует, чтобы код был подписан.
Повреждение загрузочного сектора
Если загрузочный сектор получит физическое повреждение, жесткий диск больше не будет загрузочным; кроме случаев, когда используется специальный BIOS, который определяет неповрежденный сектор в качестве загрузочного. Однако, поскольку самый первый сектор дополнительно содержит данные о разбиении жесткого диска на разделы, жесткий диск станет полностью непригодным для использования; кроме случаев, когда они используются вместе с индивидуальным программным обеспечением.
Таблицы разделов
Диск может быть разбит на несколько разделов, и в обычных системах это ожидается. Есть два определения того, как хранить информацию, касающуюся разделения:
- А Главная загрузочная запись (MBR) - это первый сектор устройства хранения данных, который был разделенный. Сектор MBR может содержать код для поиска активного раздела и вызова его загрузочной записи тома.
- А Объем загрузочной записи (VBR) - это первый сектор устройства хранения данных, на котором нет был разделен, или первый сектор отдельного раздела на устройстве хранения данных, который был разделен. Он может содержать код для загрузки операционной системы (или другой автономной программы), установленной на этом устройстве или в этом разделе.
Наличие совместимого с IBM PC загрузчика для процессоров x86 в загрузочном секторе условно обозначается двухбайтовой шестнадцатеричной последовательностью. 0x55 0xAA (так называемая подпись загрузочного сектора) в конце загрузочного сектора (смещение 0x1FE и 0x1FF). Эта сигнатура указывает на наличие по крайней мере фиктивного загрузчика, который можно безопасно запустить, даже если он не может фактически загрузить операционную систему. Он не указывает на конкретное (или даже на наличие) файловая система или операционная система, хотя некоторые старые версии DOS 3 полагались на нее в процессе обнаружения ТОЛСТЫЙ -форматированные носители (в более новых версиях нет). Загрузочный код для других платформ или процессоров не должен использовать эту подпись, так как это может привести к сбою, когда BIOS передает выполнение в загрузочный сектор, предполагая, что он содержит допустимый исполняемый код. Тем не менее, некоторые носители для других платформ ошибочно содержат подпись, что делает эту проверку не на 100% надежной на практике.
Подпись проверяется большинством системных BIOS, поскольку (по крайней мере) IBM PC / AT (но не на оригинальном IBM PC и некоторых других машинах). Более того, он также проверяется большинством загрузчиков MBR перед передачей управления загрузочному сектору. Некоторые BIOS (например, IBM PC / AT) выполняют проверку только для фиксированных дисков / съемных дисков, тогда как для дискет и суперфлоппи достаточно начать с байта, большего или равного 06ч и первые девять слов не должны содержать одно и то же значение, прежде чем загрузочный сектор будет принят как действительный, что позволяет избежать явной проверки на 0x55, 0xAA на дискетах. Поскольку старые загрузочные секторы (например, очень старые носители CP / M-86 и DOS) иногда не имеют этой сигнатуры, несмотря на то, что они могут быть успешно загружены, в некоторых средах проверка может быть отключена. не обнаруживает допустимый загрузочный сектор и, следовательно, не может передать выполнение коду загрузочного сектора, он попытается выполнить следующее загрузочное устройство в строке. Если все они терпят неудачу, обычно отображается сообщение об ошибке и вызывается INT 18h. Это либо запустит дополнительное резидентное программное обеспечение в ПЗУ (ROM BASIC ), перезагрузите систему через INT 19h после подтверждения пользователя или заставьте систему остановить самонастройка процесс до следующего включения.
Системы, не соответствующие описанной выше конструкции:
- CD-ROM обычно имеют собственную структуру загрузочных секторов; за Совместимость с IBM PC системы это зависит от Технические характеристики Эль Торито.
- C128 или же C64 программное обеспечение на Коммодор DOS диски, на которых данные на дорожке 1, секторе 0 начинались с магическое число соответствует строке «CBM».[1]
- Компьютеры IBM Mainframe помещают небольшой объем загрузочного кода в первую и вторую дорожку первого цилиндра диска и в корневой каталог, называемый Объем Содержание, также находится в фиксированном месте третьей дорожки первого цилиндра диска.
- Другие (несовместимые с IBM) системы ПК могут иметь другие форматы загрузочного сектора на своих дисковых устройствах.
Операция
На Совместимость с IBM PC машины, BIOS игнорирует различие между VBR и MBR, а также разделение. Прошивка просто загружает и запускает первый сектор устройства хранения.[2] Если устройство дискета или флешка, это будет VBR. Если устройство является жестким диском, это будет MBR. Это код в MBR, который обычно понимает разбиение диска и, в свою очередь, отвечает за загрузку и запуск VBR любого основного раздела, настроенного для загрузки ( активный раздел). Затем VBR загружает загрузчик второго уровня из другого места на диске.
Кроме того, все, что хранится в первом секторе дискеты, USB-устройства, жесткого диска или любого другого загрузочный запоминающее устройство, не требуется для немедленной загрузки кода начальной загрузки для ОС, если вообще когда-либо. BIOS просто передает управление тому, что там существует, до тех пор, пока сектор удовлетворяет очень простому условию наличия сигнатуры загрузочной записи 0x55, 0xAA в своих последних двух байтах. Вот почему обычный код начальной загрузки, содержащийся в MBR, легко заменить более сложными загрузчиками, даже большими многофункциональными. менеджеры загрузки (программы, хранящиеся в другом месте на устройстве, которые могут работать без операционной системы), что позволяет пользователям выбирать, что будет дальше. При такой свободе злоупотребление часто происходит в виде вирусов загрузочного сектора.
Вирусы загрузочного сектора
Поскольку код в загрузочном секторе выполняется автоматически, загрузочные секторы исторически были распространенным вектором атаки для компьютерные вирусы.
Чтобы бороться с этим поведением, Системный BIOS часто включает опцию, предотвращающую запись программного обеспечения в первый сектор любых подключенных жестких дисков; это могло бы защитить Главная загрузочная запись содержащий таблица разделов от случайной перезаписи, но не Объемные загрузочные записи в загрузочных разделах.[3] В зависимости от BIOS попытки записи в защищенный сектор могут блокироваться при взаимодействии с пользователем или без него. Однако в большинстве BIOS отображается всплывающее сообщение, дающее пользователю возможность изменить настройку. Параметр BIOS по умолчанию отключен, поскольку сообщение может отображаться неправильно в графическом режиме, а блокировка доступа к MBR может вызвать проблемы с операционной системой. программы установки или инструменты для доступа к диску, шифрования или разбиения, например FDISK, который, возможно, был написан не для того, чтобы осознавать эту возможность, что привело к их некорректному прерыванию и, возможно, оставлению разбиения диска в несогласованном состоянии.[nb 1]
Например, вредоносная программа NotPetya пытается получить права администратора в операционной системе, а затем пытается перезаписать загрузочный сектор компьютера.[4][5] В ЦРУ также разработала вредоносное ПО, которое пытается изменить загрузочный сектор, чтобы загрузить дополнительные драйверы, которые будут использоваться другими вредоносными программами.[6]
Смотрите также
Примечания
- ^ Одна из утилит FDISK, написанная для того, чтобы знать о функциях защиты загрузочного сектора BIOS, - это DR-DOS FDISK R2.31 (и выше), которая обнаруживает этот сценарий и отображает дополнительные интерактивные сообщения, помогающие пользователю в его выполнении. В отличие от других FDISK Утилиты DR-DOS FDISK - это не только инструмент для создания разделов, но также может форматировать только что созданные разделы как FAT12, FAT16 или же FAT32. Это снижает риск случайного форматирования неправильных томов.
Рекомендации
- ^ Справочное руководство программиста Commodore 128. Bantam Books. 1986. С.446 –667. ISBN 0-553-34292-4.
- ^ Родерик В. Смит, консультант и автор (14 апреля 2010 г.). "Переход на GRUB 2". Ibm.com. Получено 2013-03-05.
- ^ «Словарь настроек BIOS системных плат Intel для настольных ПК» (PDF). Intel. Получено 2013-09-01.
- ^ "Новый вариант программы-вымогателя" Nyetya "компрометирует системы по всему миру". blog.talosintelligence.com. Получено 2018-05-28.
- ^ «Что произойдет, если в эпоху глобальных атак вредоносного ПО не будет аварийного выключателя?». CIO Dive. Получено 2018-05-28.
- ^ «ЦРУ разработало вредоносное ПО для Windows, которое изменяет загрузочный сектор для загрузки большего количества вредоносных программ». Газета по информационной безопасности. 2017-09-01. Получено 2018-05-28.
Внешняя ссылка
- Мэри Лэндесман. «Вирусы загрузочного сектора».
- Microsoft. «Как защитить загрузочный сектор от вирусов в Windows». База знаний.
- Денни Лин (15 июня 1994). «Недорогие методы обнаружения и предотвращения вирусов в загрузочном секторе». Получено 13 августа 2015.
- Лаборатория Касперского. «Вирусы загрузочного сектора». Энциклопедия вирусов / Описание вредоносных программ / Классические вирусы. Архивировано из оригинал на 2007-08-22. Получено 2006-06-05.
- Арман Катакутан. «Глоссарий вирусных терминов». Загрузочные вирусы. Архивировано из оригинал на 2006-12-11. Получено 2006-11-07.
- Грег О'Киф. «Пример для сборки программы загрузки в реальном режиме x86».
- Susam Pal. «Написание кода загрузочного сектора с использованием GNU Assembler».
- Пьер Анчелот. «Ассемблерный код загрузочного сектора с подробным объяснением». Архивировано из оригинал 29 января 2013 г.