Используйте debug.exe для восстановления удаленного файла - PullRequest
0 голосов
/ 08 октября 2009

Несколько лет назад я прочитал учебник по команде Windows DEBUG .

В статье также описано, как можно использовать инструмент для восстановления удаленного файла .

Может ли кто-нибудь дать мне подсказку о том, как это было сделано?

Ответы [ 2 ]

1 голос
/ 08 октября 2009

С отладкой вы можете читать и писать прямо с жесткого диска. Это была очень сложная и рискованная процедура.

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

Было также приложение для восстановления, которое могло сделать это автоматически для вас.

Сегодня все это можно сделать с помощью :: CreateFile () на пути к тому \\.\C: и с помощью дескриптора :: ReadFile () непосредственно с тома. Вероятность успеха особенно высока, если вы точно знаете, как выглядит заголовок файла, тогда вы можете очень легко найти диск за сектором для этого конкретного заголовка и надеяться, что файл не фрагментирован или перезаписан. Затем вы можете просто прочитать информацию прямо с диска и записать ее в новый файл. Нет необходимости возиться с файловой системой.

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

1 голос
/ 08 октября 2009

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

Тот же принцип все еще применяется в случае NTFS, но я не знаю, возможно ли изменить структуры NTFS таким образом, не попадая в неприятности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...