Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в ЖЖ Хакер в Twitter
Журналы Новости Форум Видео Life Xakep MAEMO
Bugtrack Статьи Блог Поиск English
Совладай с WPA2 СОВЛАДАЙ С WPA2
08.02.2010

В этом видео мы покажем, насколько просто может быть взломана беспроводная сеть, даже если она защищена WPA...
Доверься ищейке ДОВЕРЬСЯ ИЩЕЙКЕ
02.02.2010

Сегодня мы установим IDS Snort на FreeBSD 7, перенаправим вывод данных в БД MySQL и добавим систему анализа собранной информации BASE...

Восстановление NTFS раздела

Захожу на свой рабочий диск…
Стоп. Точнее пытаюсь зайти на 
свой рабочий диск… а диска Е: 
нету :(. Вместо него пустое 
неразмеченное пространство

Из воспоминаний Horrific
Xakep v.11.01(35) p.27

 

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

Информация о структуре NTFS довольно скудна, и, вследствии закрытости основных спецификаций на нее, получена так называемым методом reverse engineering. Как и другие файловые системы, NTFS делит поверхность диска на кластеры. Размер кластеров имеет фиксированный размер, выбираемый из интервала от 512 байт (1 сектор) до 64 Кб (128 секторов). Обычно используется размер кластера в 4 Кб (8 секторов). Каждый элемент файловой системы, включая служебные (которые принято называть метафайлами), представляет из себя файл. Метафайлы находятся в корневом каталоге NTFS раздела и начинаются с символа имени "$", Основной служебный файл - $MFT (Master File Table) - список абсолютно всех файлов, хранящихся в разделе, включая MFT. Вновь отформатированный раздел NTFS выглядит следующим образом:

Место под файл $MFT

Место под содержимое файлов

Boot файл $MFT зарезервированное
место для файла
 $MFT
остальные метафайлы свободно

Место под MFT файл выделяется сразу и с большим запасом, обычно 12,5% (но может быть и 25%, 37,5% и 50%) от объема раздела. Оставшееся место предназначено для хранения содержимого файлов. Однако ОС, при необходимости, может сокращать место, выделенное для MFT файла, когда место под содержимое файлов заполнено. Для этого, в текущих версиях NTFS, оставшееся свободное место, выделенное под MFT файл, уменьшается вдвое, тем самым, увеличивая место, отведенное для размещения содержимого файлов. И когда ОС информирует о свободном месте, то это сумма свободного места в обеих частях раздела (зарезервированное под MFT файл и выделенное под хранение содержимого файлов). Но файлы не только добавляются в раздел, но и удаляются из него. И в этом случае возможно вновь увеличение места, отводимого под MFT файл. При этом в служебной области может оказаться содержимое файлов, которое там и останется. MFT файл начнет фрагментироваться, хотя это и не есть good. Еще раз повторюсь, сказанное относится к вновь отформатированному разделу. Когда я при помощи программы Partition Magic добавил неразмеченное пространство перед NTFS разделом к NTFS разделу (F:), то MFT у меня начинается с 1731201 кластера, хотя обычное значение - 4.

Сам MFT поделен на записи фиксированного размера по 1 Кб (2 сектора) каждая. Первые 24 записи - это служебные файлы, причем первым в списке идет сам MFT. Ввиду особой важности MFT файла, копия первых четырех записей хранится в файле $MFTMirr где-то в районе середины раздела. Также в последнем секторе раздела (для Win'2k/XP) хранится резервная копия boot сектора. Таким образом, для восстановления раздела необходимо найти и скопировать в начало раздела 4 первые записи MFT из резервной копии и, возможно, сам загрузочный сектор. 

Для работы нам потребуется любой дисковый редактор. Главное, чтоб он мог видеть все пространство твоего диска. Можно воспользоваться DiskEdit от дяди Нортона из пакета Norton Utilities 2002 или штатным дисковым редактором Win'2k - Disk Probe, для чего нужно с дистрибутива Windows из папки Support\Tools установить дополнительные инструменты, в том числе и Disk Probe. Также потребуется программа PartitionInfo из пакета Partition Magic. Для начала, выясним физические границы требуемого NTFS раздела. Это можно сделать при помощи программы PartitionInfo из пакета Partition Magic.

В моем случае раздел NTFS начинается с 5060538 сектора диска. (также в нижнем окне доступна информация в формате C:H:S) Теперь получим информацию о номере последнего сектора и о расположении MFT и ее копии, для чего нажимаем кнопку Boot Record…

Итак, последний сектор раздела это 5060538 + 3341456 = 8401994 (первый сектор раздела + Total NTFS Sectors), MFT начинается с 8х4=32 сектора (MFT start cluster * Sectors per cluster), MFT Mirr - c 417682 х 4=1670728 сектора (MFT Mirror start cluster * Sectors per cluster). Уточним размер отдельной записи в MFT файле, для чего запустив программу Partition Magic, выбрав требуемый раздел, нажав правую кнопку мыши, выберем пункт Properties  В появившемся окне выберем вкладку NTFS Info. Как и должно быть, размер записи в MFT файле (File Record Size) составляет 1 Кб (2 сектора).

Запускаем дисковый редактор, например Disk Probe, и выбираем пункты меню <Drives> - <Logical Volume>. В появившемся окне дважды щелкаем мышкой по требуемому разделу (в моем случае это G), нажимаем последовательно кнопки Set Active и OK. Теперь переходим на сектор, содержащий копию MFT. Для этого выбираем пункт меню <Sectors> - <Read> и в открывшемся окне вводим номер сектора 1670728 и число требуемых секторов (16) и нажимаем кнопку Read. Теперь перепишем эти сектора по месту расположения MFT, с 32 сектора. Для этого выбираем пункт меню <Sectors> - <Write>. Отвечаем утвердительно на вопрос изменения режима работы с Read Only на Read/Write, в появившемся окне указываем сектор, с которого надо осуществить запись (в нашем случае это 32) и нажимаем кнопку Write it. Подтверждаем свое желание еще раз и MFT восстановлена. 

Теперь необходимо скопировать на свое место загрузочный сектор. Для этого выбираем пункт меню <Drives> - <Physical Drive…> после чего устанавливаем активным требуемый физический диск. Это аналогично тому, что мы осуществили для логического диска. Теперь надо перейти на последний сектор восстанавливаемого раздела. Через меню <Sectors> - <Read> вводим значение 8401994 после чего записываем это значение в сектор 5060538. Будьте особенно внимательны, поскольку вы работаете с целым диском и не ограничены границами поврежденного раздела! 

Осталось запустить утилиту chkdsk e: /f, которая найдет и исправит просто огромное количество ошибок, после чего поздравить себя со спасенным разделом.

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

СЛЕДУЮЩИЕ СТАТЬИ
Лучшие инструменты пентестера: отладчики и дизассемблеры
Распаковка StarForce: King’s Bounty
Фабрика сплоитов: учимся писать эксплоиты для Metasploit Framework
Новый оборонительный рубеж: обзор популярных систем отражения локальных угроз
Лучшие инструменты пен-тестера: исследование веб-приложений
Delphi 2010
Геймдев для iPhone: как чужой движок помогает сделать свою игру
Лучшие инструменты пен-тестера: исследование удаленной системы
Под прессом IT-рисков: обзор Open Source систем управления уязвимостями
Привратник для локальной сети: обзор решений для выхода в Интернет и защиты сети
ПРЕДЫДУЩИЕ СТАТЬИ
Самовзлом
Построение переносимого шеллкода для Windows
Мануаль по LIBBZIP2 №2
RTK: русский Trinux
Quake 3 Arena: прозрачные стены
Сокеты в Perl №2
Samurize Pro: мониторим красиво
Ставим елку
Мануаль по LIBBZIP2 №1
Х-релиз: исходники трояна
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Регистрации на сервере не требуется, вы можете использовать гостевой доступ.
Если у вас есть форумный логин, вы можете использовать его.
Если нет, то вы можете зарегистрироваться на forum.xakep.ru
Обсуждение этой статьи на forum.xakep.ru
ВСЕ ПОСТЫ ПРОХОДЯТ ПРЕМОДЕРАЦИЮ, не ждите их мгновенного появления в списке комментариев.
Для отправки сообщения введите код, указанный на картинке
Заголовок
Сообщение

Guest Отправлено: 16.07.2007 20:51:59
k03ak;  e-mail:
Где можно достать NTFSDOS PRO (для чтения и для записи NTFS разделов)?
Guest Отправлено: 16.07.2007 20:51:59
valen;  e-mail: valen@xakep.ru
подскажи, где достать образ загрузочной дискеты под ДОС, из под которой с NTFS можно НОРМАЛЬНО работать.
Guest Отправлено: 16.07.2007 20:52:00
Deu;  e-mail: deu@tinklapis.lt
NTFSDOS PRO mozno naity v sety Edonkey i EmuLe
Guest Отправлено: 16.07.2007 20:52:00
FreeExec;  e-mail: FreeExec@mail.ru
Странно что у тебя повредился только Master File Table, раньше летели или обе копии FAT, или еще хуже partition table, а угадывать начала и концы разделов, занятие не из легких. Поэтому лучше иметь копии таблицы разделов, главной загрузочной записи, и бут секторов кождого логического диска. И не забывайте про резервное копирование, т.к. в наше време не у тебя, так у соседа найдется резак.
Guest Отправлено: 16.07.2007 20:52:00
AST;  e-mail:
Возникла у меня такая же проблема. Проделал я все выше описанное. ТЕперь выдает "Диск не отфоратирован. Произвести форматирование?". Дело в том что вычислить последний сектор мне так и не удалось, посчитал, ввожу,а мне пишет такого нет, ну методом подбора подобрал.
Guest Отправлено: 16.07.2007 20:52:00
Shas;  e-mail: shas88@.ru
Нужная статья! Спасибо!
Guest Отправлено: 16.07.2007 20:52:00
Admin;  e-mail: admin@xakep.ru
Неужели нет программы, которая это делает автоматически? Программ восстановления файлов с такого раздела куча, но восстановить файловую систему (и загрузку XP) никак.
Guest Отправлено: 16.07.2007 20:52:00
Admin;  e-mail: admin@xakep.ru
dddsfdsaffd
Yashin Отправлено: 16.07.2007 20:52:00
RE: Восстановление NTFS раздела
Спасибо, статья очень помогла найти верный путь в решении проблемы и не только. После установки OS Solaris, я потерял три раздела объемом 200гб. Прична была в том что эта ОС просто затерла 2 запись в MBR под свой раздел, а в следующие две записала на кой хер нули. С помощью программы HEX Workshop(лучше использывать более подходящие для этого программы WinHEX например, т.к. у Workshop`а я нашел ошибку в определении типов.). короче с помощью этой программы я открыл MBR, перед этим определил границы моих разделов с помощью программы EasyRecovery(которая не умеет писать в раздел, а только копирует) и записал их в файл. Отформатировал второй раздел. После этого открыл MBR, скопировал вторую запись дальше на третью и четвертую. Затем заменил значения RelativeSector и TotalSectors на значения полученные с помощью EasyRecovery. Перезагрузился проверил ScanDiskom и все стало чики-поки. Спасибо автору.
Страницы: < 1 2 >






Keywords: zPOSTz zHOMEz, zSOFTz, zINFOz z17375z
Для Авторов: edit Lock delete Lock



    Rambler's Top100