Mbr под микроскопом альтернативные методы загрузки


Содержание

MBRFilter — защита сектора загрузки MBR от несанкционированных манипуляций

MBRFilter – бесплатное программное обеспечение с открытым исходным кодом для устройств Windows. Предназначено для защиты главной загрузочной записи от изменений и манипуляций вредоносными программами.

Главная загрузочная запись MBR (англ. master boot record) — это первый сектор жесткого диска, содержащий код и данные, необходимые для последующей загрузки операционной системы. Данный первый сектор MBR имеет размер 512 байт и содержит небольшой фрагмент исполняемого кода, таблицу разделов (partition table) и специальную сигнатуру.

Загрузочный код помогает загрузить операционную систему, в то время как данные таблицы разделов помогают распознать файловую систему, хранящуюся на диске. Если запись MBR повреждена, то операционная система не сможет загрузиться.

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

Основная цель программы MBRFilter заключается в предотвращении попыток вредоносного программного обеспечения заразить главную загрузочную запись. Бесплатно загрузить MBRFilter можно со страницы GitHub. Вы можете загрузить архив 32-битный или 64-разрядной версии, в зависимости от используемой версии операционной системы Windows. После этого вы должны извлечь содержимое архива файлов, щелкнуть правой кнопкой мыши на MBRFilter.inf и выбрать “Установить” из контекстного меню. Дело сделано, остается только перезагрузить компьютер.

ОС Windows должна снова загрузиться и вы можете использовать систему, как и раньше. Единственное, что нужно знать — будут запрещены записи в секторе 0 на всех дисках.

Как удалить MBRFilter. С помощью комбинации клавиш Win+R открываем окно “Выполнить” и вводим команду “regedit”. В редакторе реестра переходим в раздел “Правка”, далее “Найти” и в поисковом окне набираем “MBRFilter”.

Нажимаем правой кнопкой мыши по параметру UpperFilters и выбираем пункт “Изменить”. Затем удаляем нижнюю строку “MBRFilter” и кликаем “OK”. Для завершения процедуры следует перезагрузить компьютер.

Примечание. Перед установкой MBRFilter рекомендуется сделать резервную копию системы.

Скачать MBRFilter можно с сайта github.com

Поделиться «MBRFilter — защита сектора загрузки MBR от несанкционированных манипуляций»

Пишем загрузочный сектор

Ответ

Первые 1BBh байт занимают код и данные загрузчика, среди которых отчетливо выделяются текстовые строки (кстати говоря, русифицировав сообщения загрузчика, Microsoft допустила грубейшую стратегическую ошибку, ведь никакого кириллического шрифта в BIOS’е нет и русские символы выглядят бессмысленной абракадаброй).

По смещению 1BBh расположен четырехбайтовый идентификатор диска, принудительно назначаемый Windows при запуске Disk Manager’а. Коварство Microsoft не знает границ! Еще со времен первых IBM PC (тогда они назывались XT), загрузчик владел первыми 1BEh байтами MBR-сектора, и достаточно многие загрузчики (и вирусы!) использовали эти байты на всю катушку. Нетрудно сообразить, что произойдет, если внутрь загрузчика вдруг запишется идентификатор. Это убьет его! Поэтому, байты 1BBh — 1BEh лучше не трогать.

Со смещения 1BEh начинается Таблица Разделов, представляющая собой массив из четырех записей типа partition. Каждая partition описывает свой логический диск, что позволяет нам создавать до четырех разделов на каждом HDD. Динамические диски, впервые появившиеся в W2K, хранятся в Базе Менеджера Логических Дисков (Logical Disk Manager Database) и в таблице разделов присутствовать не обязаны.

В общем, устройство Главного Загрузочного Сектора выглядит так:

Смещение Размер Назначение
000h Переменный Код загрузчика
1BBh 4h Идентификатор диска
1BEh 10h partition 1
1CEh 10h partition 2
1DEh 10h partition 3
1EEh 10h partition 4
1FEh 0x2 Признак таблицы разделов, сигнатура 55h AAh

Таблица 1. Устройство MBR.

Таблица Разделов — это святая святых операционной системы. Каждая запись partition состоит из: адресов начала и конца раздела, типа раздела (NTFS, FAT16, FAT32. ), количество секторов в разделе и флага «загруженности» раздела.
Все адреса задаются либо CHS (Cylinder-Head-Sector — Цилиндр-Головка-Сектор), либо LBA (Logical Block Address — Логический Адрес Блока) формате. Конкретный формат определяется типом раздела (Boot ID), записанным в 04h байте. Количество существующих типов огромно и было бы слишком утомительно перечислять их здесь. В таблице 3 приведены лишь самые популярные из них.

В CHS-формате, 01h и 05h байты partition’а хранят номер первой и последней головки раздела (см. таблицу 2). Байты 02h и 06h хранят 5 младших бит начального/конечного сектора и по два старших бита номера цилиндра, а оставшиеся биты лежат в следующем байте. Получается довольно запутанная схема, да к тому же адресующая только первые 8 Гбайт дискового пространства (CHS адрес занимает три байта или 24 бита, что при длине сектора в 512 байт дает 512 * 224 = 8.388.608 байт). Ха! Да жесткие диски преодолели этот барьер еще в прошлом веке! Это было достигнуто за счет введения LBA-адресации, последовательно нумерующей все сектора от 0 до многодетной матери. Начало раздела хранится в 32-битном поле relative offset (относительное смещение), содержащим смещение первого сектора раздела от начала partition или, попросту говоря, расстояние между концом partition и началом раздела. Конец раздела в явном нигде не хранится, вместо этого в специальном 32-битном поле partition size записывается количество секторов в разделе. Как нетрудно подсчитать, предельно допустимый размер одного раздела составляет (512 * 232 = 2.199.023.255.552 байт или 2.048 Гбайт), а совокупный объем всего диска вообще неограничен! Так что, для сегодняшних нужд LBA-адресации вполне достаточно, а там уж мы что-нибудь придумаем.

Смещение Разм. Назначение
000 1BE 1CE
001 1BF 1CF
002 1C0 1D0
003 1C1 1D1
004 1C2 1D2
005 1C3 1D3
006 1C4 1D4
007 1C5 1D5
008 1C6 1D6
00С 1CA 1DA

Таблица 2. Формат partition.

Boot ID Тип раздела
00h Раздел свободен
0x01 FAT12 (менее чем 32.680 секторов в томе или 16 Мбайт), CHS
0x04 FAT16 (32.680. 65.535 секторов или 16-33 Мбайт), CHS
0x05 Расширенный раздел (extended partition), CHS
0x06 BIGDOS FAT16 раздел (33 Мбайт — 4 Гбайт), CHS
0x07 NTFS-раздел, CHS
0x0B FAT32 раздел, CHS
0x0C FAT32 раздел с поддержкой расширенной BIOS INT 13h, LBA
0x0E BIGDOS FAT16 раздел с поддержкой расширенной BIOS INT 13h, LBA
0x0F Расширенный раздел с поддержкой расширенной BIOS int 13h, LBA
0x42 Динамический диск, LBA
0x86 Legacy FT FAT16 раздел, CHS
0x87 Legacy FT NTFS раздел, CHS
0x8B Legacy FT volume formatted with FAT32, CHS
0x8C Legacy FT volume using BIOS INT 13h extensions formatted with FAT32, LBA

Таблица 3. Возможные значения Boot ID.

Рисунок 2. Основная Таблица Разделов, разбивающая винчестер на четыре логических диска.

Если partition имеет тип 05h или 0Fh, то она указывает совсем не на начало раздела, а на следующий MBR. Точнее, не совсем MBR, но нечто очень на него похожее. В нем присутствует полноценная Таблица Разделов с четырьмя входами: partition 1, partition 2, partition 3 и partition 4, каждая из которых указывает либо на логический диск, либо на новый MBR. Длина такой цепочки практически неограниченна и может превышать 26. Однако назначить буквы всем последующим разделам уже не удаться и под Windows 9x они будут просто не видны. Windows NT поддерживает гибридный механизм наименования разделов — по буквам и по именам, поэтому ей эти ограничения не страшны.

Стандартный загрузчик позволяет запускать системы только из Основной Таблицы Разделов. Цепочку MBR’ов он не анализирует. В своем загрузчике мы исправим этот недостаток.

Рисунок 4. Структурная схема типичной Расширенной Таблицы Разделов.

Интерфейс INT 13h

Управлять дисками можно как через порты ввода/вывода, так и через BIOS. Порты намного более могущественны и интересны, однако BIOS программируется намного проще, к тому же она поддерживает большое количество разнокалиберных накопителей, абстрагируя нас от конструктивных особенностей каждой конкретной модели. Поэтому мы будем действовать через нее, а точнее через интерфейс прерывания INT 13h.

Попробуем прочитать сектор с диска в CHS-mode. Естественно, действовать нужно из самого MBR или из «голой» MS-DOS, иначе у нас ничего не получится, ведь Windows NT блокирует прямой доступ к диску даже из режима «Эмуляции MS-DOS»!

Номер функции заносится в регистр AH. В случае чтения он равен двум. Регистр AL отвечает за количество обрабатываемых секторов. Поскольку мы собираемся читать по одному сектору за раз, занесем сюда единицу. Регистр DH хранит номер головки, а DL — номер привода (80h — первый жесткий диск, 81h — второй и так далее). Пять младших битов регистра CL задают номер сектора, оставшиеся биты регистра CL и восемь битов регистра CH определяют номер цилиндра, который мы хотим прочитать. Регистровая пара ES:BX указывает на адрес буфера-приемника. Вот, собственно говоря, и все. После выполнения команды INT 13h считываемые данные окажутся в буфере, а если произойдет ошибка (например, головка споткнется о BAD-сектор) BIOS установит флаг переноса (carry flag) и мы будем вынуждены либо повторить попытку, либо вывести грустное сообщение на экран.

На ассемблерном языке это звучит так:

Запись сектора в CHS-режиме происходит практически точно также, только регистр AH равен не 02h, а 03h. С LBA-режимом разобраться намного сложнее, но мы, как настоящие хакеры, его обязательно осилим. Вот только пива хлебнем.

Чтение сектора осуществляется функцией 42h (AH = 42h). В регистр DL, как и прежде, заносится номер привода, а вот регистровая пара DS:SI указывает на адресный пакет (disk address packet), представляющий собой продвинутую структуру следующего формата:

Смещение Тип Назначение
00h BYTE Размер пакета 10h или 18h
01h BYTE Зарезервировано и должно быть равно нулю
02h WORD Сколько секторов читать
04h DWORD 32-разрядный адрес буфера-приемника в формате seg:offs
08h QWORD Стартовый номер сектора для чтения
10h QWORD 64-разряный плоский адрес буфера приемника (используется, только если 32-разряный адрес равен FFFF:FFFF)

Таблица 4. Адресный пакет, используемый для чтения/записи секторов в режиме LBA.

Запись осуществляется аналогично, только регистр AH содержит не 42h, а 43h. Регистр AL определяет режим: если бит 0 равен 1, BIOS выполняет не запись, а ее эмуляцию. Бит 2, будучи взведенным, задействует запись с проверкой. Если AL равен 0, выполняется обыкновенная запись по умолчанию.

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

32 Кбайт. Да в этот объем даже графический интерфейс с мышью и голой красавицей на обоях уместить можно. Но мы не будем! Настоящие хакеры работают в текстовом режиме с командной строкой, а красавиц лучше иметь, чем смотреть.

Как уже говорилось, BIOS загружает MBR по адресу 7C00h, поэтому в начале ассемблерного кода должна стоять директива ORG 7C00h, а еще USE16 — ведь загрузчик выполняется в 16-разрядном реальном режиме. Позже, при желании он может перейти в защищенный режим, но это будет уже потом. Не будет лезть в такие дебри.

Обнаружив загрузочный раздел (а обнаружить это можно по флагу 80h, находящемуся по смещению от начала partition), загрузчик должен считать первый сектор этого раздела, разместив его в памяти по адресу 0000:7C000h, то есть аккурат поверх своего тела. А вот это уже нехорошо! И чтобы не вызвать крах системы, загрузчик должен заблаговременно перенести свою тушу в другое место, что обычно осуществляется командой MOVSB. Копироваться можно в любое место памяти — от 0080:0067h до 9FE00h. Память, расположенную ниже 0080:0067h лучше не трогать, т.к. здесь находятся вектора прерываний и системные переменные BIOS’а, а от A000h и выше начинается область отображения ПЗУ, так что предельно доступный адрес равен A000h — 200h (размер сектора) = 9FE00h.

Что еще? Ах да! Трогать DL-регистр ни в коем случае нельзя, поскольку в нем передается номер загрузочного привода. Некоторые загрузчики содержат ошибку, всегда загружаясь с первого жесткого диска. Стыдно не знать, что BIOS уже лет десять как позволяют менять порядок загрузки и потому загрузочным может быть любой привод.


Кстати говоря, FASM — единственный известный мне ассемблер, «переваривающий» команду дальнего вызова JMP 0000:7C000h напрямую. Все остальные ассемблеры заставляют извращаться приблизительно так: PUSH offset_of_target/PUSH segment_of_target/RETF. Здесь мы заталкиваем в стек сегмент и смещение целевого адреса и выполняем далекий RETF, переносящий нас на нужное место. Еще можно воспользоваться самомодифицирующимся кодом, собрав команду JMP FAR «вручную» или просто расположить целевой адрес в одном сегменте с исходным адресом (например, 0000:7C000h -> 0000:7E000h), но это все муторно и утомительно.

В общем, скелет нашего загрузчика будет выглядеть так:

Листинг 3. Скелет простейшего загрузчика на FASM’е.

Инсталляция нашего загрузчика в MBR

Под старушкой MS-DOS записать свой загрузчик в MBR было просто — достаточно дернуть прерывание INT 13h, функцию 03h (запись сектора). Но под Windows NT этот прием уже не работает и приходится прибегать к услугам функции CreateFile. Если вместо имени открываемого фала указать название устройства, например, «\\.\PHYSICALDRIVE0» (первый физический диск), мы сможем свободно читать и записывать его сектора вызовами ReadFile и WriteFile, соответственно. При этом флаг dwCreationDisposition должен быть установлен в значение OPEN_EXISTING, а dwShareMode — в значение FILE_SHARE_WRITE. Еще потребуются права root’а или в терминологии Windows — администратора, иначе ничего не получится.

Законченный пример вызова CreateFile выглядит так:

Открыв физический диск и убедившись в успешности этой операции, мы должны прочитать оригинальный MBR-сектор в буфер, перезаписать первые 1BBh байт, ни в коем случае не трогая Таблицу Разделов и сигнатуру 55h AAh (мы ведь не хотим, чтобы диск перестал загружаться, верно?). Остается записать обновленный MBR на место и закрыть дескриптор устройства. Все! После перезагрузки все изменения вступят в силу, а может быть и не вступят. Загрузчик жестоко мстит за малейшие ошибки проектирования и чтобы не потерять содержимое своих разделов, для начала лучше попрактиковаться на VM Ware или любом другом эмуляторе PC.

Под Windows 9x, кстати говоря, трюк с CreateFile не работает. Но там можно воспользоваться симуляцией прерываний из DMPI или обратится к ASPI-драйверу. Оба способа подробно описаны в моей книге «Техника защиты компакт-дисков от копирования». И хотя в ней речь идет о CD, а не о HDD, жесткие диски программируются аналогичным способом.

Илон Маск рекомендует:  padding-bottom в CSS

Как избавится от вируса-блокировщика MBRLock?

Вирусописатели раз от раза становятся все изобретательнее и изобретательнее. На смену уже всем «знакомого» вируса-блокировщика Winlock, от которого можно избавится достаточно просто, пришел новый, более продвинутый вирус, который блокирует работу компьютера еще до того момента, когда начнет стартовать сама операционная система. Отсюда следует, что «старые» методы избавления уже не действуют и нужно искать что-то новое.

Ниже представлен способ избавления от блокировщика MBRLock, который почему-то «в народе» назвали — блокировщиком BIOS`а.

Небольшое отступление

Работа вируса MBRLock заключается в том, что он меняет загрузочную область MBR и просто прописывается вместо загрузки операционной системы. Пользователь, который включает свой компьютер, чаще всего видит на черном фоне грубый текст с вымогательным контекстом, требующий отправить некоторую сумму либо на мобильный телефон, либо на рублевый счет WebMoney. После оплаты у пользователя якобы на чеке будет код-разблокировки, который после набора просто выполнит стандартную процедуру восстановления MBR-области (если Вы не знаете что такое MBR, то можете ознакомится на Wiki).

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

Универсальный способ избавления от блокировщика Windows — MBRLock

В Интернете можно найти очень много способов для решения этой проблемы, но все они относятся к ней словно «забивать гвозди микроскопом». Никто не утверждает, что с помощью LiveCD с «пиратской» Windows или какого-то другого программного обеспечения, нельзя убрать этот блокировщик. Конечно же можно, но это решение не совсем верное, простое и, самое главное, безопасное.

Самый универсальный способ избавится от блокировщика Windows — это восстановить главную загрузочную область MBR с помощью любого установочного диска с подобной операционной системой.

Избавляемся от MBRLock:

  1. Вставляем загрузочный диск с Windows.

Нужно использовать диск Windows именно той версии, которая у Вас установлена. То есть, если Вы на своем компьютере используете Windows XP, то именно этот диск и нужно использовать. Вместо CD\DVD-диска с таким же успехом можно использовать загрузочный LiveCD с Windows.

Запускаем стандартный режим восстановления Windows.

Дожидаемся «первого окна» установки Windows. На примере ниже представлена стандартная установка Windows XP:

В этом окне просто необходимо нажать на клавишу R и дождаться загрузки режима восстановления Windows.

Предварительные вопросы режима восстановления.

При загрузке режима восстановления, установщик Windows «спросит» Вас о том какую ОС будем восстанавливать. Необходимо ввести соответствующую цифру требуемого пункта.

В примере установлена только одна ОС Windows XP. Если у Вас несколько установленных ОС Windows, то количество пунктов может отличаться.

В некоторых случаях установщик Windows может «спросить» пароль администратора.

Восстанавливаем boot-область.
Для операционной системы Windows XP, набираем в консоли восстановления команду:

Для того, чтобы завершить сеанс восстановления, необходимо в консоли набрать exit.

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

Все так как Гейтс прописал.

P.S. Если сравнить 2 вируса: Winlock и MBRLock, то получается, что проще поддается «лечению» именно MBRLock — продолжатель Winlock`ера.

  1. cayenne #
    20 Январь, 23:19


Если-б было все так просто… Иногда вылетает BSOD на стадии предварительной загрузки файлов. Даже не доходит до “первого окна”.. Все равно приходится грузиться с livecd править вайл boot.ini и сканировать антивирусом..

Да статья интересная, но нужно перечитывать…

Испытывал я данное средство в работе, и фиксом MBR иногда не получается отделаться. Получилось избавиться от этой гадости только методом загрузки с LiveDVD, зачисткой всех временных папок винды, а уже только затем фиксил загрузочную запись.

faceless: Испытывал я данное средство в работе, и фиксом MBR иногда не получается отделаться. Получилось избавиться от этой гадости только методом загрузки с LiveDVD, зачисткой всех временных папок винды, а уже только затем фиксил загрузочную запись.

Ну если вирус все еще активен и сидит где-то, то все возможно.

Mut@Nt: faceless: Испытывал я данное средство в работе, и фиксом MBR иногда не получается отделаться. Получилось избавиться от этой гадости только методом загрузки с LiveDVD, зачисткой всех временных папок винды, а уже только затем фиксил загрузочную запись.
Ну если вирус все еще активен и сидит где-то, то все возможно.

Да вот и я об этом же.

Буквально пару дней назад столкнулся именно с этой проблемой: товарищ позвал привести в чувства компьютер. Сначала, не разобравшись, сходу загрузился с ERD и откатил систему на пару дней назад, что естественно проблему не решило… только после этого понял, что вирус записал себя в загрузчик (раньше подобного не встречал). Проблема решилась всего двумя командами: fixboot и fixmbr в консоли восстановления windows, как и описано в настоящей публикации.

А что с 7-кой? Там-то алгоритм тот же?

все лечится просто.
заходим в биос — выставляем 2014 год.
перезагружаем комп. зпгружается винда.
опять перегружаем. выставляем в биосе 2012. перзагружаем. и все ок

Я через загрузочную флешку его убирал. Вот написать его посложнее – битовые матрицы надо делать. Но сам я такое не делал =)

Все, что вы хотели знать про загрузку Windows, загрузчики и восстановление загрузки ОС

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

Принципы загрузки операционных систем

При включении компьютера управление процессором получает BIOS, и если он настроен на загрузку (boot) с винчестера, то он подгружает в оперативную память компьютера первый сектор диска (MBR) и передает управление ему. Если у вас несколько жестких дисков, то каждый из них содержит свою MBR. В этом случае можно или менять порядок загрузки дисков в BIOS, или же прописать все операционные системы с разных дисков в один PBR загрузчик, об этом ниже.

Сразу оговоримся, что если у BIOS у вас включен режим загрузки UEFI, то структура разделов диска у вас должна быть не MBR, а GPT. GPT имеет не только другую структуру разделов, но и другую структуру загрузочной области. Там в первый сектор записывается «заглушка» для BIOS (Protective MBR), которая служит для того, чтобы старый Legacy BIOS мог загрузиться с GPT диска в режиме совместимости, если ОС была установлена на GPT (часто в BIOS его называют CSM – Compatibility Support Module). Однако, вы никогда не сможете загрузить ОС с MBR диска, если в BIOS выставлена загрузка в режиме UEFI.

При загрузке операционной системы, сначала считывается первый сектор с устройства загрузки, представляющий собой главную загрузочную запись (Master Boot Record — MBR). Стандартно, в качестве MBR выступает первый сектор загрузочного диска. MBR содержит список разделов, признак активного раздела (раздела, с которого будет выполняться загрузка ОС), некоторые служебные данные, а также программный код для считывания в память загрузочного сектора активного раздела (Partition Boot Record — PBR) и передачи ему управления.

Размер сектора на жестком диске — 512 байт. В секторе MBR хранятся данные, которые должны заканчиваться специальной сигнатурой. Этим словом называется специальная, строго установленная, последовательность из 2 байт с шестнадцатеричными значениями 55h AAh, которая записывается в последние 2 байта сектора и соответственно имеет смещение от начала сектора 1FEh. Если хотя бы один из двух последних байтов отличается по значению, считается, что первый сектор не является MBR и не содержит осмысленной информации. Если компьютер при старте, прочитав первый сектор, не обнаружит правильной сигнатуры, он не будет передавать управление располагающемуся там коду, даже если он правильный, а выдаст сообщение о том, что главная загрузочная запись не найдена.

Общая структура MBR может быть представлена следующей таблицей:

Смещение Длина Описание

000h 446 Код загрузчика

1BEh 64 Таблица разделов

1CEh 16 Раздел 2

1DEh 16 Раздел 3

1EEh 16 Раздел 4

1FEh 2 Сигнатура (55h AAh)

Длина указана в байтах.

Как видно, MBR может содержать информацию максимум о 4 разделах. Каждый 16-байтовый блок, содержащий информацию о разделах, в своем начале содержит признак активности раздела — т.е. признак того, что операционную систему следует загружать именно из этого раздела — может иметь значения 80h (раздел активен) и 00h (раздел не активен). Количество активных разделов должно быть не более одного.

Шестнадцатеричный однобайтовый код далее указывает на тип (ID) раздела. Например, 07h – раздел типа NTFS, 0Bh – FAT32, 17h – скрытый NTFS раздел, 27h – системный скрытый NTFS раздел для восстановления системы.

Типы MBR

Выше мы увидели, что в сектор MBR записывается код загрузчика. Что же это? Дело в том, что в MBR может быть записан как «стандартный» загрузчик, так и альтернативные загрузчики.

Существуют следующие распространенные типы MBR:

  • Windows NT версий 5.х и 6.x, занимает 1 сектор. Может загружать ОС только с первичного активного раздела.
  • GRUB4DOS версий 5.х и 6.x – занимает 16 секторов. Представляет собой файл gbldr.mbr. также его можно установить в качестве PBR прямо в раздел.
  • GRUB 2.0 – универсальный загрузочный менеджер, занимает 63 сектора. Состоит из файлов boot.img и core.img. Может работать с любыми файловыми системами и загружать ОС как с первичных, так и логических разделов.
  • PLoP – занимает 62 сектора и имеет продвинутый интерфейс. Позволяет организовать загрузку с CD/Floppy/USB без поддержки и обращения к BIOS.
  • UltraISO USB-HDD – занимает 1 сектор и позволяет выполнять загрузку с внешних USB HDD дисков.

Конечно, с учетом многообразия ОС, существует масса других MBR, но они не так популярны.

Операционные системы дружат только с определёнными типа загрузчиков, однако это не значит, что их нельзя модифицировать для поддержки других ОС. Так, в Windows MBR можно добавить информацию о Linux разделе, но этого недостаточно, чтобы Linux стал грузиться. Для этого также потребуется редактировать и PBR. Однако линуксовый LDLINUX.SYS требует наличия своего микрокода в MBR, чтобы обращаться к нему в процессе загрузки, то есть если у вас загрузочная запись Windows NT MBR, а загрузчик GRUB, то такая схема работать не будет. Виндовсовые загрузчики могут обойтись без наличия соответствующего микрокода в MBR, поэтому они могут грузиться и через GRUB MBR.

Главное, что вам нужно понять, что MBR содержит микрокод, инструкции для процессора, а не файлы. PBR же указывает на загрузчик, который является файлом.

Разнообразие PBR

Мы с вами выяснили, что MBR передает управление на активный раздел с PBR. PBR (Partition Boot Record), так же называют volume boot record (VBR) – это микрокод в начальном секторе раздела диска (часто это сектор 63), который содержит информацию, какой же загрузчик искать.


Существуют следующие загрузчики:

Тип MBR — NT 5.x/6.x, 1 сектор

  • io.sys для MS-DOS, Windows 95/98/МЕ
  • ntldr для Windows 2000/XP/2003
  • bootmgr для Windows Vista/7/8/8.1/10

Тип MBR — Grub4DOS, 18 секторов

Тип MBR — LILO/GRUB и др. линуксовые (к-во секторов зависит от версии и количества файлов)

  • ldlinux.sys – основной базовый модуль
  • syslinux.sys — для загрузки с FAT, FAT32, NTFS
  • isolinux.bin — для загрузки с iso9660
  • pxelinux — для загрузки по PXE
  • extlinux для загрузки с ext2/ext3/ext4 или btrfs

Как я сказал выше, загрузчик является не загрузочной областью, а бинарным файлом.

  • Файлы Windows NTLDR или BOOTMGR должны лежать в корне активного системного раздела и работают они по-разному. Об этом ниже.
  • Файл GRLDR используется Grub4DOS также должен лежать в корне партиции, с котрой выполняется загрузка
  • Syslinux – универсальный загрузчик, содержащий много модулей и поддерживающий загрузку с файловых систем ext2/¾, FAT, NTFS, CD/DVD дисков, по сети через PXE. Позволяет организовать текстовое или графическое загрузочное меню.
    Чаще всего этот загрузчик используют для запуска Linux с файловых систем FAT/NTFS или же создания мультизагрузочных USB флэшек, позволяющих загружать как Linux-совместимые приложения под DOS, так и Windows PE.

Например, типичные пример создания мультизагрузочной флэшки – Multiboot USB 2k10, создаваемые уважаемыми conty9 & korsak7. Мультизагрузочный диск системного администратора с возможностью загрузки c CD/DVD, флешки, USB-HDD и обычного HDD и состоящий из нескольких Windows PE-сборок, а также DOS версий продуктов компании Acronis – например Acronis True Image (выполнены на Linux-ядре). Именно из-за этого смешанного зоопарка систем и приходится использовать загрузчик Syslinux (хотя можно и Grub4DOS).

В своем арсенале вам необходимо обязательно иметь утилиту BootICE. Уникальная в своём роде утилита для изменения или бэкапа/восстановления MBR (Master Boot Record) или PBR (Partition Boot Record). С BOOTICE, вы можете легко изменять тип MBR/PBR. Поддерживается загрузочные записи: Grub4DOS, SysLinux, PLoP, MS NT52/60… Например, с помощью этой утилиты, вы можете установить Grub4DOS вашим MBR или PBR, установить NTLDR или BOOTMGR к вашему PBR, установить SYSLINUX на PBR, и так далее.

Восстановление загрузчика Windows 7-10 (MBR и GPT)

Оценка: 85.51 % — 8 Голосов

Общая

Мы часто сталкиваемся с проблемами загрузчика операционной системы, будь это поврежденный по разным причинам загрузочный сектор или после неудачно установленных обновлений от Microsoft в результате которых ОС не грузится и постоянно пытается обновиться. Все это лечится восстановлением или создания с нуля загрузчика Windows. Здесь будет рассказано как восстановить загрузчик Windows в загрузочных таблицах MBR и GPT.

Содержание:

Для проведения данных процедур необходимо загрузить ПК с загрузочного диска или флешки и открыть командную строку.

Восстановление в MBR загрузочной таблице.

Для восстановления загрузочной записи необходимо отформатировать системный раздел. У загрузочных таблиц MBR раздел имеет размер от 100-500 Мб и имеет файловую систему NTFS.

Определить нужный раздел и отформатировать его поможет утилита diskpart.

В командной строке вводим:

Выведем список всех физических дисков установленных в ПК:

Выберем нужный диск:

Выведем список разделов на данном диске:

Выберем раздел MBR размером от 100 до 500Мб и файловой системой NTFS:

select volume N

Назначим букву разделу:

После чего выйдем из diskpart:

Далее создаем загрузочную запись:

bcdboot C:\Windows /s Z: /f ALL

Данную команду нужно выполнить для каждой ОС, установленной в системе.

После проведенных процедур необходимо убрать присвоенную нами ранее букву для диска через утилиту diskpart:

Выберем раздел MBR размером от 100 до 500Мб, файловой системой NTFS и назначенной буквой Диска Z:

select volume N
remove letter=Z
exit

После перезагружаем ПК и пробуем загрузить ОС.

Восстановление в GPT загрузочной таблице.

У загрузочных таблиц GPT раздел имеет размер от 99-300 Мб и имеет файловую систему FAT32.

Определяем нужный раздел утилитой diskpart.


В командной строке вводим:

Выведем список всех физических дисков установленных в ПК:

Выберем нужный диск:

Выведем список разделов на данном диске:

Выберем раздел MBR размером от 99-300 Мб и имеет файловую систему FAT32:

select volume N

Назначим букву разделу:

После чего выйдем из diskpart:

Переходим в каталог с загрузчиком:

Иногда папка с загрузчиком может отличаться:
z:\esd\windows\efi\microsoft\boot\ или z:\boot\

Создаем загрузочный сектор:

Переименовываем BCD запись:

Пересоздаем BCD запись:

bcdboot C:\Windows /s Z: /f ALL

После проведенных процедур необходимо убрать присвоенную нами ранее букву для диска через утилиту diskpart:

Выберем раздел MBR размером от 99-300Мб, файловой системой FAT32 и назначенной буквой Диска Z:

select volume N
remove letter=Z
exit

Илон Маск рекомендует:  Запрет выделения на странице

После перезагружаем ПК и пробуем загрузить ОС.

Как восстановить главную загрузочную запись MBR

В последнее время я заметил одну особенность практически все современные программы по работе с разделами жесткого диска, стали использовать новую функцию восстановление главной загрузочной записи (Rebuild MBR).

Наверное, каждый из нас встречался с такой ситуацией, когда после перезагрузки операционной системы, возникают ошибки типа: «operating system not found», «system missing» и другие.

Как правило, это происходит после каких-то действий с нашей стороны, установка или обновления программ, драйверов, перепады напряжения, проблемы с жестким диском и кривыми руками.

Существует несколько вариантов восстановления MBR, но столь простой и доступный способ, появился только в последних версиях программ.

На примере программы Partition Assistant я покажу пошагово, как это сделать. Вы можете использовать любой менеджер разделов, в котором есть такая функция.

1. Скачайте и установите программу AOMEI Partition Assistant.

2. Создайте или скачайте загрузочный диск.

3. Запустите программу или загрузитесь с загрузочного диска, затем на карте разделов выберите жесткий диск, щелкните на нем правой клавишей мышки и выберите “Rebuild MBR”.

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

5. На панели инструментов нажмите кнопку “Apply” для применения текущих изменений.

Хочу предупредить! Что в случаи повреждения загрузочных файлов операция по восстановлению главной загрузочной записи “Rebuild MBR” не поможет.

Автор: Ruterk
7 января 2013 г.

15 отзыва на “ Как восстановить главную загрузочную запись MBR ”

Здравствуйте! Я доигрался с переустановками Винд до того, при включении компа выскакивает окно перезагрузитесь с установочного диска, и испорчен boot sector — он дает только войти в БИОС, там все нормально — а при вставке загр. диска Винд7 — он только скачивает файлы и зависает. Наверно эта программа может помочь восстановить MBR — но только где взять ее ISO, чтобы сделать загрузочный диск — и загрузиться с него. Файл, что Вы дали для скачивания предназначен для установки в систему

  1. Ruterk Автор публикации 2020-06-13 в 10:14

При применении каких либо действий они перемещаются в «отложенные». Как сделать, чтобы действие сработало сразу?

Здравствуйте , помогите с загрузочной записью . На ноутбуке стоит Хр , материнская плата сгорела уже давно ,установил программу eazy bcd после входа в прогамму увидел , что в загрузчике нет не одной загрузочной записи .Пытался установить виндовс 8.1 — всё та же ерунда — не видит созданную запись.


  1. Ruterk Автор публикации 2015-06-28 в 03:55

Здравствуйте, немного не понятно, под какой операционной системой вы запускаете программу EasyBSD? И что значит пытался установить Windows 8.1? Вы её установили?, но опять не увидели в программе какую-либо информацию о загрузчике, так?
Программа может не корректно прочитать загрузчик или ещё какие-нибудь проблемы могут не дать этого сделать. Пожалуйста подробнее, что Вы хотите сделать и что в итоге получить!

Здравствуйте! Помогите, пожалуйста, вылечить ЖД Seagate 2 Gb. Ситуация такая: диск был подключен через внешний USB-box, отформатирован под NTFS и использовался как «файлопомойка». Скидывал туда и старые видюхи, и фотки, и т.п. Диск забит был почти полный. Но, в один прекрасный день после проблем с USB-боксом диск стал нечитаемым. Подключил напрямую к SATA-разъёму, загружаю ХР и вижу такую картинку: в проводнике диск видится как скрытый (полупрозрачный), букву свою не потерял, но в свойствах вместо NTFS стоит RAW, обращения к диску нет. CHKDSK /f не помогает, т.к. она RAW не берёт. Акронисом DD тоже ничего сделать не могу. Хоть и старая, но всё же жалко информацию. Попробовать восстановить инфу с помощью спец программ на аналогичный диск? Или можно как-нибудь проще?

  1. Ruterk Автор публикации 2014-10-13 в 08:23

Здравствуйте, перед тем как воспользоватся программами по восстановлению, можно попробовать принудительно поменять «сырую» RAW на файловую систему NTFS. Пожалуйста задавайте вопросы в форум, кстати где то на форуме есть инструкция по изменению типа файловой системы.

Через R-Studio восстановить инфу.

Windows стоит на SSD. В результате отключения питания нет загрузки, пишет состояни 0xc000000f сбой меню загрузки и предлагает вставить загрузочный диск. Образ был создан на USB 32Gb. При входе через F8 и выборе загрузки через USB в левом углу экрана три раза мигнул курсив и потом черный экран. Ожидание дальнейших действий не к чему не привело. Процедура проведена несколько раз через разные входы USB. Сборка Windows7 неоднократно проверена.

ну вот смотрите. У меня проблема — не запускается нетбук. И тут автор пишет про такую вот программку — хорошо. Пишет создайте загрузочную флешку — есть. А что дальше то? установил PartAssist на флешку , а она из под DOS не запускается.. АФТАР! Что ты имел ввиду когда писал — » ЗАГРУЗИТЕСЬ С ЗАГРУЗОЧНОЙ ФЛЕШКИ» ? Чисто прикол? Кароче прога возможно и нормальная , но автор…

  1. Ruterk Автор публикации 2014-08-31 в 14:31

Автор, тоже возможно нормальный… И где это написано в статье «ЗАГРУЗИТЕСЬ С ЗАГРУЗОЧНОЙ ФЛЕШКИ».

Для загрузки из DOS, естественно необходима специальная версия программы. Используйте её!

Спасибо вам БОЛЬШУЩЕЕ за совет воспользоваться программой AOMEI Partition Assistant. Она мне как раз-таки и помогла!
А то я думал что уже всё — накрылся жесткий диск…
СПАСИБО ВАМ!

Не Apple, а Apply, т.е. применить

Здравствуйте! После разбития диска на разделы парагоном, перезагрузка, всё, чёрный экран и запись missing operating sistem! Низагрузочный диск, ни флеш ни грузится. Могу войти только в биос! Приоритеты выставлял, всё равно вылазиет эта «бяка»

  1. Ruterk Автор публикации 2013-02-02 в 17:43

Вам необходимо восстановить загрузчик, используя загрузочный дистрибутив вашей операционной системы. Если Вы правильно выставили в БИОС приоритеты загрузки с нужного устройства, значить нужно разбираться где проблема: с диском, приводом, или шлейфом.

Эта ошибка указывает что не найдены загрузочные файлы операционной системы, возможно в следствие изменения количество разделов или повреждения. Пожалуйста задавайте вопросы в форум!

Как загрузиться в FreeBSD со сломанным загрузчиком?

У меня есть диск (HDD, SSD, флэшка — что угодно) с установленной на него FreeBSD. Я каким-то образом сломал загрузочный код (первые 446 байт MBR) на диске, и теперь моя FreeBSD даже не пытается загрузиться.

Однако я знаю, что разделы на диске не повреждены, и все данные, кроме куска MBR, на месте. Как мне загрузиться?

1 ответ 1

Если вы имеете дело с «классической» 512-байтной загрузочной записью (MBR в стиле DOS) — всё довольно просто.

DOS-like MBR состоит из 3 частей: первые 446 байт несут в себе непосредственно код загрузчика (bootcode), который умеет передавать управление загрузкой компьютера загрузочному сектору, находящемуся в одном из разделов диска; следующие 64 байта описывают «основные» разделы диска (4 по 16 байт); оставшиеся 2 байта — это сигнатура 55h AAh .

Если код загрузчика был стёрт, как-то повреждён, затёрт нулями или заменён другим загрузчиком, не знающим ничего про FreeBSD, но таблица разделов осталась на месте — загрузиться в установленную на один из разделов FreeBSD можно, просто воспользовавшись загрузчиком любой другой FreeBSD для старта.

  • Начните загрузку любой BSD-like операционной системы (я проверял этот метод на FreeBSD 6.0, 7.0, 8.0, 8.1, 8.2, 8.3, 8.4, 9.2 и Frenzy 1.4) с другого носителя — HDD, CD, с USB-флэшки, через сеть по PXE, через virtual media посредством BMC/KVM, etc.
  • В процессе загрузки выберите опцию «Escape to loader prompt» на экране загрузчика (она будет под номером «6» в старых дистрибутивах FreeBSD, «3» в FreeBSD 9, «8» в Frenzy)
  • Теперь выгружайте ядро «чужой» FreeBSD, в загрузчике которой находитесь, и его модули, с помощью команды unload
  • Найдите дисковое устройство, на котором находится FreeBSD, в которую необходимо загрузиться (обычно это что-то вроде disk0s1a ) с помощью команды lsdev
  • Выберите это устройство «основным» («current») для загрузчика, дав команду set currdev=»disk0s1a»
  • Перечитайте loder.conf с вашего диска (там могут быть критичные для правильной загрузки хаки, вроде подключения модулей ядра для работы с сетевыми картами) командой read-conf boot/loader.conf
  • И, наконец, загрузите вашу ОС командой boot-conf

Когда ваша недоступная для самостоятельной загрузки FreeBSD загрузилась, останется только починить её загрузчик. В своём случае я использовал sysinstall , пункт Custom -> Partition, W , , BootMgr («Install the FreeBSD Boot Manager»), , Q , , . Однако эта утилита объявлена устаревшей с момента выхода 9.0-RELEASE и убрана из базовой системы с момента выхода 10.0-RELEASE. Есть и альтернативный способ восстановить загрузчик, воспользовавшись резервной копией, хранящейся в /boot (за подсказку спасибо @dile):

Mbr под микроскопом альтернативные методы загрузки

В процессе загрузки компьютера x86 вначале всегда отрабатывается BIOS. На этой стадии, кроме тестирования и инициализации оборудования компьютера, происходит также и выбор устройства, с которого будет происходить дальнейшая загрузка. Это может быть дискета, жёсткий диск, сетевой ресурс, встроенное ПЗУ или любое иное устройство (алгоритм выбора загрузочного устройства может быть различным и зависит от реализации BIOS). После выбора загрузочного устройства управление всей дальнейшей загрузкой BIOS полностью передаёт этому устройству.

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

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

Развитие MBR

Иногда в MBR кроме основной функции (выбора раздела) включаются также и другие функции, например, авторизация. Но это уже расширение и дополнение к основной функции и задаче MBR. Такие системы не получили широкого распространения.


Другие (не x86) системы

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

Стандартизация MBR

Утверждённого стандарта на структуру MBR не существует, однако, есть «сложившиеся традиции», которых придерживаются большинство MBR от разных производителей.

Иные форматы MBR

Загрузчики, отличные от стандартных Windows-загрузчиков, могут использовать всё пространство между MBR и первым разделом (около 32 кб) для собственных целей. В таких случаях под MBR понимают весь загрузочный код, а для выделения именно первых 512 байт говорят, что они расположены в MBS (Master Boot Sector) — главном загрузочном секторе.

Для операционных систем Microsoft понятия MBR и MBS совпадают, так как вся MBR содержится в MBS, хотя это не совсем правильно, так как под MBR подразумевают данные, а под MBS — физический сектор.

MBR от Microsoft (MS DOS и MS Windows)

Структура MBR

Структура MBR от Microsoft занимает один сектор (512 байт):

  • область кода и служебных данных (446 байт)
  • область partition table (4 записи по 16 байт)
  • Сигнатура 55AAh (2 байта)

Содержание «Области кода и служебных данных» зависит от версии DOS и Windows, но функции остаются те же — поиск, загрузка и запуск нужного загрузочного сектора [1] [2] [3] .

Алгоритм работы кода MBR от Microsoft

BIOS (до MBR)

  • BIOS проводит начальную инициализацию оборудования («железа»)
  • BIOS определяет, с какого устройства производить дальнейшую загрузку: дискета, флеш-накопитель, жёсткий диск и т. д. (выбор устройства зависит от версии и от настроек BIOS)

[в данном описании рассматривается только случай загрузки с жесткого диска]

  • BIOS считывает один сектор (512 байт), который находится по адресу: «цилиндр 0, головка 0, сектор 1», и помещает его в область памяти по адресу 0000:7c00
  • BIOS проверяет, что этот сектор оканчивается сигнатурой 55ААh

[если это не так, то управление возвращается обратно в BIOS]

  • BIOS передаёт управление по адресу 0000:7c00 (то есть сектору MBR)

Выбор загрузочного раздела и проверка целостности MBR:

  • MBR копирует себя с адреса 0000:7c00 на адрес 0000:0600 (освобождая место для будущей загрузки уже собственно загрузчика ОС)
  • MBR просматривает по очереди все записи о разделах и ищет первую запись об «активном» (== «загрузочном») разделе (то есть ищет раздел, отмеченный как 80h)
  • В случае успеха (раздел, помеченный как 80h — найден) MBR запоминает номер этого раздела

[если просмотрены все 4 записи и не найден раздел, помеченный как 80h, то вызывается INT 18h. Это возвращает управление обратно в BIOS, что может приводить либо к загрузке BASIC, либо к повторной попытке загрузить систему с диска, либо к перезагрузке компьютера — в зависимости от версии и реализации BIOS]

  • MBR просматривает все оставшиеся записи и проверяет, что это единственный активный раздел (что больше разделов, помеченных 80h, на данном физическом диске не существует)

[если находятся другие разделы, помеченные 80h, то MBR выводит сообщение об ошибке (обычно это что-то типа «Invalid partition table»), после чего система зависает в бесконечном цикле, из которого можно выйти только перезагрузкой компьютера]

  • MBR проверяет, что в данном поле для всех 4-х разделов нет иных значений, кроме «00h» и «80h»

[если находятся разделы, помеченные значением, отличным от 00h или 80h, то MBR выводит сообщение об ошибке («Invalid partition table»), система зависает, требуется перезагрузка компьютера]

На этом заканчивается проверка MBR и начинается подготовка к загрузке ОС:

  • MBR считывает первый сектор логического диска, помеченного как «загрузочный» и помещает этот сектор по адресу 0000:7c00
  • MBR проверяет, что данный сектор заканчивается сигнатурой 55ААh

[если этой сигнатуры в этом месте нет, то выводится сообщение «Missing operating system» и компьютер подвисает, требуется перезагрузка]

  • MBR передает управление по адресу 0000:7c00 (то есть загрузочному сектору выбранного логического раздела диска)

Загрузочный сектор логического диска (после MBR)

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

Структура MBR

Структура главной загрузочной записи (MBR)
Смещение Длина Описание
000h 446 Код загрузчика
1BEh 64 Таблица разделов
16 Раздел 1
1CEh 16 Раздел 2
1DEh 16 Раздел 3
1EEh 16 Раздел 4
1FEh 2 Сигнатура (55h AAh)

Код загрузчика

После завершения процедуры POST в ОЗУ по адресу 0x0000:0x7c00 записывается код загрузчика после чего ему передается управление. Задача загрузчика — проанализировать таблицу разделов жёсткого диска, затем либо передать управление загрузочному коду активного раздела, либо загрузить в RAM ядро операционной системы и передать ему управление.

Таблица разделов

В таблице разделов хранится информация о типе раздела и его расположении на жёстком диске.

Сигнатура


Последние два байта MBR называются сигнатурой. Значение этих байтов должно быть 55h AAh. В случае, если это не так, запись считается некорректной.

Структура описания раздела

Структура описания раздела
Смещение Длина Описание
00h 1 Признак активности раздела
01h 1 Начало раздела — головка
02h 1 Начало раздела — сектор (биты 0—5), дорожка (биты 6, 7)
03h 1 Начало раздела — дорожка (старшие биты 8, 9 хранятся в байте номера сектора)
04h 1 Код типа раздела
05h 1 Конец раздела — головка
06h 1 Конец раздела — сектор (биты 0—5), дорожка (биты 6, 7)
07h 1 Конец раздела — дорожка (старшие биты 8, 9 хранятся в байте номера сектора)
08h 4 Смещение первого сектора
0Ch 4 Количество секторов раздела
Илон Маск рекомендует:  Opengl лекция №1 введение события сообщения контекст

Признак активности разделов

Признак активности раздела — признак, обозначающий возможность загрузки операционной системы с данного раздела. Для стандартных загрузчиков может принимать следующие значения:

  • 80h — раздел является активным;
  • 00h — раздел является неактивным;
  • другие значения являются ошибочными и игнорируются.

Начало раздела / Конец раздела

Координаты начала и конца раздела в CHS-формате (цилиндр, головка, сектор). CHS не позволяет выполнять адресацию более чем к 7,8 ГБ данных, и для адресации к разделам, находящимся за пределами 7,8 ГБ, используется LBA-адресация.

Код типа раздела

Код файловой системы, используемой на данном разделе.

Коды типов разделов

Код Тип раздела
00h Пустая запись
01h 12-битная FAT
04h 16-битная FAT до 32 Мбайт
05h Расширенный раздел
06h 16-битная FAT свыше 32 Мбайт
07h Windows NT NTFS (и некоторые другие — тип определяется по

содержимому загрузочной записи)

0Bh 32-битная FAT
0Ch 32-битная FAT с использованием LBA
0Eh LBA VFAT (то же что и 06h, с использованием LBA)
0Fh Расширенный раздел LBA (то же что и 05h, с использованием LBA) [4]
17h Скрытый раздел NTFS
1Bh Скрытый раздел 32-битной FAT (то же что 0Bh)
1Ch Скрытый раздел 32-битной FAT с использованием LBA (то же что 0Ch)
1Eh Скрытый раздел LBA VFAT (то же что и 06h, с использованием LBA)
82h Linux swap
83h Linux
85h Linux extended
86h Раздел FAT-16 stripe-массива Windows NT
87h Раздел NTFS stripe-массива Windows NT
B6h Зеркальный master-раздел FAT-16 Windows NT
B7h Зеркальный master-раздел NTFS Windows NT
С6h Зеркальный slave-раздел FAT-16 Windows NT
С7h Зеркальный slave-раздел NTFS Windows NT

В случае, если используется расширенный раздел, то координаты начала раздела указывают на EBR.

Структура EBR

Смещение Длина Описание
1BEh 16 Указатель на раздел
1CEh 16 Указатель на следующий EBR
1FEh 2 Сигнатура (55h AAh)

Формат указателей аналогичен MBR.

Смещение первого сектора

Координаты начала раздела в LBA-координатах. Позволяет выполнять адресацию до 2 ТБ данных.

Восстановление MBR

Если каким-либо образом была потеряна MBR, то её можно восстановить специальными утилитами (например, TestDisk), которая «просмотрит» весь носитель информации и создаст таблицу разделов.

Пример кода создания резервной копии MBR в unix-подобных системах для диска sda:

Восстановление загрузчика и таблицы разделов:

Mbr под микроскопом альтернативные методы загрузки

Требования

  • операционная система Windows 7 или выше;
  • установленный пакет .NET 4.0.

Возможности

  • позволяет редактировать размер и флаг ЛЮБОГО раздела;
  • позволяет изменять параметры командной строки запуска;
  • мультиязычная версия;

Свежая версия
RK_ParamEd_v1.01.rar ( 20,43 КБ )

  • PartitionsA23 — разметка разделов на процессорах AllWinner — для чипов А23 и А33, A31s (возможно подойдёт и для других чипов)

Приложение для обработки файлов разметки схем DOS (MBR+EBR, partition.bin и т.п.) и GUID (файл GPT, EFI и т.п.).
Требования

  • операционная система Windows 7 или выше;
  • установленный пакет .NET 4.0.

Свежая версия
PartitionsEditor_1.02.rar ( 122,15 КБ )

Инструкция пользователя
Скоро будет.

В теме нет куратора. По вопросам наполнения шапки обращайтесь к модераторам раздела через кнопку под сообщениями, на которые необходимо добавить ссылки.
Если в теме есть пользователь, желающий стать Куратором и соответствующий Требованиям для кандидатов, он может подать заявку в теме Хочу стать Куратором (предварительно изучив шапку темы и все материалы для кураторов).

Сообщение отредактировал vaalf — 15.10.18, 12:14

Проверить успешность процесса переразмеки, можно только одним способом : посмотреть каким стал размер того раздела, манипуляции с которым Вы проводили в программе ScatterEditor .
Посмотреть размеры разделов телефона можно, например, через программку MTK Dro >Root-Shell , если его нет) затем жмем на кнопку «Карта блоков» . Появляется новое окошко, в котором и смотрим размеры разделов телефона.


Что такое MBR-файл.

Введение.
Для работы операционной системы (ОС) необходимо создать таблицу размещения ее частей. Эта таблица находится в MBR (Master Boot Record — главная загрузочная запись), которая физически располагается в начале памяти.
MBR содержит саму таблицу размещения разделов, сигнатуру файла (т.е. признак Boot Record) и исполнимый код, используемый некоторыми ОС для загрузки.

Структура MBR и EBR файлов.

MBR имеет размер 512 байт, т.е. один физический сектор и имеет следующую структуру:

Каждая запись таблицы разделов имеет длину 16 байт, а содержимое зависит от используемой ОС. Для мобильных устройств формат записи таблицы разделов имеет следующий вид:

Структура записи таблицы разделов
——————————————
Смещение Длина Описание
——————————————
00h-03h 4 Неиспользуется (всегда 0х0)
04h 1 Код типа раздела
05h-07h 3 Неиспользуется (всегда 0х0)
08h 4 Смещение раздела (в секторах по 512 байт)
0Ch 4 Количество секторов раздела (длина раздела)
——————————————

Смещение раздела указывается от первого сектора описываемой этой таблицей области памяти. Т.е. если в поле смещения раздела указано значение 0х400, а сама таблица (MBR) расположена в памяти, начиная с адреса 0х00600000 (это указывается в scatter-файле), то этот раздел физически будет расположен в памяти с адреса

0х00600000
+ 0х00080000 (0х400*0х200=0х00080000)
—————
0х00680000

Код типа раздела описывает его содержимое. Так, если раздел не содержит информации, т.е. пуст, то его код устанавливается в 0х00.
Если разделов больше 4 и в одну таблицу MBR они не помещаются, то заводится дополнительная таблица — расширительная. Она называется EBR1 (Extended Boot Record). Код такого раздела 0х05. Коды часто используемых разделов приведены в таблице.
Раздел, содержащий EBR1 имеет точно такую же структуру, только отсутствует исполнимый код. Если количество разделов не помещается и в дополнительную таблицу, то одна из записей будет содержать описание следующей таблицы, имеющей название EBR2. И так далее по мере надобности.

Работа с MBR и EBR файлами.
В файлы, содержащие таблицы MBR и EBR, вносятся изменения после корректировки scatter-файла. Зная первоначальные размер и смещение раздела, его можно найти в таблице BR.
Затем новые значения этих параметров переводятся из байт в сектора, разделив на 512 (0х200), и вписываются в соответствующие поля таблицы.

В связи с большим объемом материала примеры я решил вынести в отдельный пост.

Сообщение отредактировал vin2809 — 12.02.14, 20:39

Введение.
Разметка памяти, т.е. разбивка на разделы, в устройствах на чипах МТК производится при помощи файла, который называется «scatter file».
Он используется программами-прошивальщиками, т.н. флешерами (от английского «flasher») при прошивке полного образа памяти или отдельных ее частей, называемых разделами.
Структура scatter file содержит описание всех существующих разделов памяти, независимо от того, что они будут содержать в работающем устройстве.

Строение scatter file.
Существует две версии структуры scatter-файла. Рассмотрим первую версию, используемую в большинстве мобильных устройств на чипах MTхх.
Полное описание раздела памяти представляет собой набор строк вида:

[__NODL_]name offset [length]
<
>, где

  • __NODL_ — «No download» признак того, что раздел будет пропущен флешером, и для его работы не требуется файл для прошивки. Такой раздел можно вообще исключить из scatter file;
  • name — название раздела;
  • offset — смещение раздела от начала памяти в 16-ричном виде, байт;
  • length — длина раздела в 16-ричном виде, байт.

Квадратные скобки означают необязательный параметр.
Чаще всего используется сокращенная запись вида:

  • — partition_index — индексный номер раздела, например, SYS1;
  • — partition_name — имя раздела, например, MBR;
  • — file_name — имя файла, содержащего образ раздела, или NONE;
  • — is_download — признак загружаемости раздела (что-то типа __NODL_);
  • — type — тип раздела. Указывает на содержимое раздела. Может принимать следующие значения:

EXT4_IMG — раздел содержит часть файловой системы EXT4;
NORMAL_ROM — раздел содержит сохраненный образ или отдельный файл;
SV5_BL_BIN — раздел содержит «сырой код» (Raw Code), т.е. исполнимый код;

  • — linear_start_addr — начальный адрес размещения раздела в файле прошивки, байт;
  • — physical_start_addr — начальный адрес размещения раздела в памяти устройства (физический адрес), байт;
  • — partition_size — размер раздела, байт;
  • — region — размещение раздела. Может принимать следующие значения:

EMMC_BOOT_1 —
EMMC_USER —

  • — storage — HW_STORAGE_EMMC
  • — boundary_check — признак необходимости отметки границы раздела (во внутренней БД или PMT);
  • — is_reserved — признак необходимости резервного копирования;
  • — operation_type — тип операции. Может принимать следующие значения:

BINREGION — область «сырого кода»;
BOOTLOADERS — загрузчик;
INVISIBLE — невидимый раздел;
PROTECTED — защищенный раздел;
RESERVED — зарезервирован;
UPDATE — обновляемый раздел.

  • — reserve

Пример полного scatter-файла второй версии, приведен в файле «Scatter_v2.txt».

Работа со scatter file.
Любой флешер использует scatter file только для ПОЛНОЙ разметки памяти.
Если Вы прошиваете один или несколько разделов, то флешер размещение разделов берет из внутренней «базы данных» — файла PMT (Partitions Map Table). Он считывает значение смещения для раздела (физический адрес) и копирует,т.е. «прошивает» образ раздела в память, начиная с этого физического адреса.
Т.к. scatter file содержит перечень и физические адреса размещения всех разделов памяти, то изменив его можно произвести переразметку этой памяти. Для этого необходимо изменить значения смещений необходимых разделов.
Например, в разделе USRDATA располагаются данные программ пользователя: логи работы и ошибок, данные о рекордах игр и т.д. Поэтому этот раздел чаще других переполняется, что приводит к появлению сообщений вида «Память переполнена».
В типовом scatter file он имеет смещение 0x34f80000 и размер 0x74f80000-0x34f80000=0х40000000(или 1073741824=1Гб). Увеличим его, например, на 256Мб(268435456). Тогда размер раздела станет 1073741824+268435456=1342177280(или 0х50000000 в hex). Т.е. мы добавили в раздел еще 0х10000000 байт. Тогда смещение следующего раздела передвинется на эту же величину:
было — 0х74f80000
стало — 0х84f80000
Если сделать так со смещениями ВСЕХ последующих разделов, то они ВСЕ передвинутся и на эту величину увеличится ОБЩИЙ размер памяти, занимаемой прошивкой. А это недопустимо. Поэтому нужно уменьшить размер какого-либо последующего раздела. У нас это раздел пользователя (FAT).
Изменить его размер мы не можем, т.к. он расположен до конца существующей памяти. Он просто автоматически укоротится.
Казалось бы и все, но укорачивать разделы можно до определенного предела (до «нуля»). Поэтому, если смещение последнего раздела переходит верхнюю границу памяти, то придется откатывать назад все изменения или уменьшать размер «прибавки» раздела.

Пример scatter-файла
Scatter_v2.rar ( 1 КБ )

Сообщение отредактировал vin2809 — 27.02.14, 15:26

Защита главной загрузочной записи с помощью утилиты MBRFilter

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

Сегодняшние шифровальщики типа Petya и Satana куда круче того, что было когда-то. Сегодня кроме всего прочего они научились заражать главную загрузочную запись MBR. Как это работает, и как от этого защититься я расскажу вам в сегодняшней статье.

Защита MBR

  • Предисловие
  • Главная загрузочная запись MBR
  • Как происходит заражение MBR
  • Защита MBR с помощью MBRFilter
    • Скачать MBRFilter
    • Установка MBRFilter
    • Удаление MBRFilter
    • Демонстрация работы MBRFilter

Главная загрузочная запись

Что такое главная загрузочная запись?

MBR — главная загрузочная запись (на английском master boot record) — код и данные, необходимые для последующей загрузки операционной системы, находящиеся в первых физических секторах (обычно в самом первом) жесткого диска или другого устройства хранения информации. Подробнее о MBR можете почитать на Wikipedia.

Так как код MBR выполняется перед самой загрузкой операционной системы, он может стать жертвой вирусов-вымогателей. Вредоносные программы заражающие MBR известны как Буткиты.

Microsoft уже давно пытается решить проблему MBR-вирусов путем реализации криптографической проверки загрузчика в Windows 8 и более новых версиях. Данная функция называется безопасной загрузкой и основывается на Unified Extensible Firmware Interface (UEFI) — современном BIOS.

Проблема заключается в том, что безопасная загрузка работает далеко не на всех компьютерах и не на всех версиях ОС Windows и не поддерживает диски с MBR-разделами. Это говорит о том, что на сегодняшний день огромное количество персональных компьютеров остаются уязвимыми для атак MBR.

MBRFilter

Но на днях ребята из команды Talos которая отвечает за информационную безопасность в компании Cisco Systems выложили бесплатную с открытым исходным кодом утилиту, которая защищает master boot record (главную загрузочную запись) компьютеров на операционной системе Windows от изменения вредоносными программами.

Скачать MBRFilter

Вы можете скачать MBRFilter с Гитаба бесплатно по этой ссылке. А вот альтернативная ссылка для тех у кого проблема с доступом на Гитаб. В архиве версия для 32-бит и 64-бит + исходники.

Как установить MBRFilter

Установка MBRFilter довольно проста. Все что требуется от пользователя это правым кликом мышки на файле вызвать контекстное меню и нажать пункт «Установить» и после этого перегрузить компьютер.

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

Как удалить MBRFilter

Удаление MBRFilter тоже не проблема, но маленько посложнее. Для этого комбинацией клавиш WIN + R вызываем окно выполнить.

И командой «regedit» запускаем Реестр Windows.

После чего находим эту ветку:

Правым кликом на параметре UpperFilters вызываем контекстное меню и выбираем пункт изменить. В появившемся окне удаляем строку «MBRFilter» и нажимаем «OK».

В конце перезагружаем компьютер.

Данную процедуру, точнее удаление, рекомендую делать перед переустановкой системы. А так, после установки утилиты, можете про нее забыть.

Ну вот вроде и все. Теперь читатели сайта спай-софт.нет знают что такое MBR, немного о вирусах-вымогателях Петя и Сатана и о том как защитить MBR. На данный момент это хорошая защита MBR, но это только пока. У хакеров и на это появится свой ответ (решение). Поэтому я рекомендую подписаться на нас в соцсетях, чтобы быть в курсе о всех этих новшествах.

Хотите больше знать о вирусах, изучать их, но не знаете откуда скачать сэмплы? Вам сюда в статью «Где скачать вирусы«, там вы найдете огромною кучу этого добра и познакомитесь с человеком который коллекционирует вирусы моего, а может и вашего детства.

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

Видео: демонстрация работы MBRFilter

Оценка программы MBRFilter

Наша оценка

MBRFilter — маленькая, бесплатная утилита, которая может быть использована для предотвращения записи вредоносными программами в MBR в сектор 0 на всех дисковых устройствах подключенных к системе.

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL