ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
ÃÂÕáÛãçÃÂÙÃÂÞ CUDA ØÔÕÃÂœ? phpMyAdmin - Xakep Online
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
unixoid<br />
СТРУКТУРА КАТАЛОГА В EXT2/3<br />
INFO<br />
info<br />
• Для исследования<br />
файловой системы<br />
ext2 необязательно<br />
использовать<br />
стандартную утилиту<br />
debugfs. Есть более<br />
дружественная<br />
и наглядная<br />
альтернатива под<br />
названием LDE<br />
(Linux Disk Editor, lde.<br />
sourceforge.net).<br />
• Файловая система<br />
ext2 была спроектирована<br />
по образу<br />
и подобию UFS (Unix<br />
File System), поэтому<br />
ты легко вникнешь<br />
в тему, если захочешь<br />
разобраться в особенностях<br />
восстановления<br />
файлов<br />
в BSD-системах.<br />
• Существует<br />
множество утилит,<br />
автоматизирующих<br />
процесс восстановления<br />
данных<br />
в файловых системах<br />
ext2 и ext3, наиболее<br />
функциональные из<br />
которых: TestDisk<br />
(www.cgsecurity.<br />
org/wiki/TestDisk),<br />
undelete (www.stud.<br />
tu-ilmenau.de/~mojo/<br />
undelete.html) и<br />
sleuthkit (www.<br />
sleuthkit.org).<br />
084<br />
что дает право другим файлам использовать их для хранения<br />
своей информации. Освобождается и сам inode, но опасность<br />
его повторного использования другим файлом очень<br />
низка в силу большого резерва файловых дескрипторов,<br />
которые будут задействованы в первую очередь. Получается,<br />
что для восстановления удаленного файла в файловой<br />
системе ext2 достаточно узнать номер его inode, прочитать<br />
и распутать вереницу массивов ссылок на блоки данных, а<br />
затем собрать из них файл!<br />
С файловой системой ext3 все намного сложнее: ее драйвер<br />
очищает массив ссылок на блоки (i_block), так что файл<br />
придется собирать по кусочкам, разыскивая блоки по всей<br />
файловой системе.<br />
В СТРАНЕ МЕРТВЫХ<br />
Чтобы избежать перезаписи блоков удаленного файла, восстановление<br />
следует начать с немедленного размонтирования<br />
раздела. Если же файл находился на корневом разделе,<br />
лучшее средство — кнопка RESET на системном блоке и<br />
последующая загрузка с LiveCD.<br />
Для низкоуровневой навигации по файловой системе<br />
необязательно использовать шестнадцатеричный редактор,<br />
существует несколько утилит, которые облегчают этот процесс.<br />
Одна из них — стандартная команда debugfs из пакета<br />
e2fsprogs.<br />
Запусти ее с указанием раздела, содержащего подопытную<br />
файловую систему:<br />
$ debugfs /dev/sda1<br />
Откроется командная строка, которая принимает множество<br />
команд. Набери help, чтобы увидеть их. Наиболее интересные<br />
для нас команды: lsdel, stat, cat и dump. Команда lsdel<br />
показывает все удаленные inode. Выполни ее:<br />
debugfs: lsdel<br />
Скорее всего, список будет очень длинным, поэтому лучше<br />
сразу перенаправить его в файл:<br />
$ echo lsdel | debugfs /dev/sda1 > /tmp/lsdel.<br />
out<br />
Открой полученный файл и попытайся найти разыскиваемого<br />
по времени удаления, размеру, владельцу и другим<br />
данным. Запомни номер его inode и выполни команду stat в<br />
командной строке debugfs:<br />
debugfs: stat <br />
На экране появится вся информация об inode (номер,<br />
тип, владелец, время создания и удаления и пр.). В<br />
конце вывода будет присутствовать информация о<br />
блоках, занимаемых файлом на диске, и их количество.<br />
На основе этих данных можно восстановить любой<br />
файл, воспользовавшись командой dd в качестве<br />
инструмента. Но есть более простой способ. Команда<br />
dump делает снимок всех блоков, принадлежащих<br />
указанному inode, и записывает их в указанный файл.<br />
Попробуй:<br />
debugfs: dump -p /tmp/âîññòàíîâëåííûé_ôàéë<br />
Ключ ‘-p’ сохраняет за файлом прежние права доступа, владельца<br />
и группу. Имя файла придется подобрать по памяти,<br />
оно хранилось в каталоге и было затерто во время удаления.<br />
Если ты ищешь текстовый файл, то для полной уверенности<br />
лучше сначала выполни команду cat над inode, которая<br />
выведет содержимое файла прямо на экран:<br />
debugfs: cat <br />
Чтобы идентифицировать файл после его восстановления,<br />
можешь применить утилиты file и strings. Первая покажет<br />
тип файла, а вторая выведет на экран все читаемые строки,<br />
которые он содержит.<br />
Для восстановления утраченных файлов необязательно<br />
делать их дамп в существующую файловую систему, — можно<br />
изменить саму inode-таблицу. Сделать это просто. Открываем<br />
дисковый раздел (или его снимок) в режиме записи:<br />
# debugfs -w /dev/sda1<br />
Находим описанным выше способом inode удаленного файла<br />
и открываем его на редактирование:<br />
debugfs: mi <br />
Команда mi расшифровывается как «modify inode» и предназначена<br />
для ручного редактирования inode. Она выводит<br />
на экран все поля inode и их текущие значения, заключенные<br />
в квадратные скобки. Курсор будет останавливаться<br />
у каждого поля, ожидая ввода нового значения, которое<br />
можно пропустить, нажав . Нас интересует только два<br />
поля: время удаления (Deletion time) и количество ссылок<br />
(Link count). Первое следует обнулить, а второму присвоить<br />
значение 1. Так мы вернем мертвый файл к жизни, но введем<br />
файловую систему в скомпрометированное состояние: файл<br />
есть, но найти его невозможно (запись каталога, содержащая<br />
его имя и ссылку на inode, уже затерта). С точки зрения<br />
файловой системы это ошибка, которая дает нам два варианта<br />
последующих действий.<br />
Мы можем запустить fsck, который найдет несоответствия в<br />
файловой системе и исправит их, поместив наших призраков<br />
в каталог lost+found:<br />
# e2fsck -f /dev/sda1<br />
Или же воспользоваться методом прямого вмешательства:<br />
создать жесткую ссылку на файл, используя команду link<br />
утилиты debugfs:<br />
debugfs: link âîññòàíîâëåííûé_ôàéë<br />
Восстановленный файл появится в текущем каталоге. Однако<br />
команду e2fsck придется запустить и в этом случае, потому<br />
как закрепленные за файлом блоки до сих пор помечены как<br />
неиспользуемые.<br />
КАК БЫТЬ С EXT3?<br />
Как мы уже упоминали, Linux-драйвер ext3 использует<br />
другой механизм разлинковки. Он затирает всю таблицу<br />
соответствия в inode, делая процесс восстановления<br />
данных чрезвычайно трудным, если не сказать невозможным.<br />
Но попробуем мыслить логически. Файл представляет<br />
собой последовательность блоков определенного<br />
размера, разбросанных по всему жесткому диску. У<br />
каждого типа файла есть набор признаков, по которым<br />
XÀÊÅÐ 07 /127/ 09