Antech
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору xekanet Самое лучшее начало - ни в коем случае не использовать автоматических фич редакторов. Большинство инфы для базовых знаний и для изучения MBR есть в wikipedia.org. Если Вы не знакомы с базовыми понятиями "винтологии", рекомендую почитать форум "Магнитные носители информации" на iXBT.com или на этом сайте. Форум iXBT хорош тем, что там бывают DR-специалисты. Почитайте темы типа тонких деталей устройства HDD или стратегии ремапа. Предварительно можете посмотреть статью по HDD на Вики, я не проверял, но наверняка полезная базовая инфа там есть. Обратите внимание на то, как физически записывается инфа на диск, что такое серворазметка (серва), что такое трансляция, CHS и LBA. Это поможет избежать конфузов типа применения "physical" CHS к современным девайсам, ну и вообще даст Вам основные представления об устройстве HDD. Если Вы не знакомы с дисковыми и другими hex-редакторами, начните с встроенного редактора DMDE или WinHex или даже MediaWorkshop-II. Из этих трех прог только WinHex платный, но он и очень удобный, и де-факто является инструментом начального уровня для полу-про восстановления (например, его используют при сборке RAID'ов даже DR-спецы). Откройте в редакторе какой-нибудь винт как физический диск и просто взгляните на то, как выглядит самый первый сектор (он имеет номер LBA=0). Попробуйте изменить, скопировать какие-то фрагменты. Разумеется, не стоит сохранять изменения или переключать редактор в режим "мгновенной записи" (по умолчанию она отключена). Или сохраните начальные, к примеру, 50 секторов винта в файл и работайте с файлом. Ваша задача на этом этапе - стать "familiar" с редактором, чтобы потом он просто был хорошо знакомым инструментом. Если Вы не знакомы с тем, как хранятся десятичные числа в памяти x86-систем, в т.ч. и на винте, почитайте про такие вещи как endianness (порядок байтов) и представление отрицательных чисел (в MBR Вам понадобится только первая фишка, но в NTFS и знаковые числа есть). Откройте винт или дамп MBR, например, в WinHex, и нажмите Alt+F12, выберите Master Boot Record - Apply. Измените какое-нибудь значение (например, начало раздела задайте 11223344) и нажмите Enter, закройте окно. Это авто-фича (шаблоны), но Вы на нее сейчас особо не смотрите, а посмотрите что теперь отмечено в окне редактирования синим цветом. Это измененные байты. Обратите внимание на то, как они расположены (44 33 22 11). Попробуйте на других числах. Если работаете с винтом, не сохраняйте изменения . Надеюсь, что с битовыми картами проблем у Вас не возникнет. Смысл - в том, что часто некоторые поля являются не целыми значениями и не идентификаторами, а битовыми картами (bitmaps). Например, поля флажков атрибутов файла (это не конкретно про MBR, но вообще для раскопки логики накопителей полезно знать). Например, в виндузовом Калькуляторе наберите в битовом режиме 10101010 и переключите в байтовыый (hex) вид. Это hex-значение одновременно является битмэпом или полем флагов, которые Вы ввели (каждый бит может отвечать за какой-то признак). Теперь полноценное изучение MBR. В двух словах, MBR содержит (в начале) исполняемый машинный код загрузчика, после чего следуют 4 записи разделов, а сразу после них, в двух последних байтах сектора - значения 55 AA (это указывает на "особый" с логической точки зрения сектор). Каждая запись раздела занимает 16 байт и содержит байт флажка загрузочного раздела, начальный CHS-координаты, байт кода типа раздела, конечные CHS-координаты, начальный номер LBA (начальный сектор) и число секторов. Подробнее Вы можете ознакомиться на Wiki: насколько помню, там хорошо написано. Прочитали про MBR? Теперь откройте винт (или дамп начала винта) в редакторе и попробуйте без шаблона, прямо по hex-значениям, определить тип первого раздела, номер начального сектора и число секторов. Посмотрите, является ли раздел загрузочным. CHS-координаты сложнее, т.к. там используются отдельные биты (значения разделены границами байт), но, к счастью, для современных винтов эти значения обычно не актуальны. В принципе, Вы можете пользоваться для них шаблоном "Master Boot Record" в WinHex или другом редакторе: значимого пробела в знаниях это не даст, т.к. такой "анахронизм" сейчас в обычных кейсах не встречается, а для MBR наверняка на практике будете пользовать шаблон. Определили параметры раздела (кроме CHS)? Переведите в десятичный вид и запишите на бумажку или в текстовый файл. Откройте шаблон MBR (в WinHex - Alt+F12, Master Boot Record, Apply). Сравните то, что покажет программа, с тем, что Вы определили. Если ошиблись, ищите в чем именно. Если все правильно, значит "stage clear". Теперь, когда Вы достаточно хорошо знакомы с MBR, можете поставить смелый эксперимент. Возьмите винт без нужной инфы или флешку, сотрите начало винта (флешки) в дисковом редакторе и переподключите (или перезагрузитесь). Создайте там обычным способом (например, в Управлении дисками в Винде) один MBR-раздел, отформатируйте и запишите несколько файлов (любых). Откройте начало винта в редакторе и, без использования шаблонов, запишите на бумажку (переведите на калькуляторе) номер начального сектора и число секторов в десятичном виде (это чтобы не было слишком просто). Теперь удалите нафиг MBR через редактор (не перепутайте винт!!!) и переподключите. Никаких разделов, правда? Теперь вручную, без использования шаблонов, прямо в hex'е впишите идентификатор 55 AA и параметры одного раздела (CHS можете оставить нулевыми). Переподключите. Вы снова должны иметь доступ к разделу. Поздравляю: Вы освоили MBR. Есть интерес? Вас ждет не менее увлекательная, но гораздо более сложная вещь - NTFS. Читайте, изучайте, экспериментируйте. | Всего записей: 3120 | Зарегистр. 26-12-2006 | Отправлено: 17:07 10-07-2013 | Исправлено: Antech, 17:21 10-07-2013 |
|