Мне не понятен алгоритм поиска удаленных файлов. Перебираю все записи в MFT, нахожу удаленные и т.д. Но! Слил тулу http://www.softpedia.com/get/System/Back-Up-and-Recovery/Restoration.shtml (кстате freeware), так вот она находит имена файлов, для которых нет записи в MFT. Кто-нибудь может дать ссылку или подсказать хотя бы примерный алгоритм поиска удаленных файлов, для которых нет записи в MFT?
За имя забудь. Нет MFT записи - нет имени. А файлы ищутся сканированием свободного пространства. Таким образом найти можно только некоторые виды файлов, так как поиск идет по сигнатурах. Если, например, нашли кластер с заголовком JPEG файла, то из заголовка можно узнать длину файла. Берем нужное количество кластеров, и если они не заняты, предполагаем, что это и есть наш удаленный файл. Если же файл был фрагментирован, то естественно, мы получим мусор в восстановленом файле. Кроме того часть кластеров уже может быть перезаписаной. Поэтому шансы что либо восстановить таким образом достаточно невелики.
Так я именно так и думаю, но не понимаю как сия тула находит кучу файлов (более чем в два раза больше чем я нахожу бегая по MFT), причем там есть и совсем маленькие по размеру (1-20 байт) и есть один большой (~300М).
Ну вообще не мешает для начала почитать про устройство файловых систем. Например, когда файл удаляется, то его имя не стирается из каталога, а просто заменяется первый символ. Возможно твоя утилита именно их и находит. Во-вторых, в NTFS есть лог "транзакций". Я про него почти ничего не знаю, но там тоже имена могут быть. Кроме того, есть куча "гадюшников" кроме корзины - например, пресловутое "Восстановление системы".
Это в ФАТ, в NTFS не так, там запись в таблице фалов лежит вплоть до выделения сей ячейки новому файлу. Лог транзакций... возможно. Надо копнуть. "Восстановление системы" -- думаю врядли туда будут заноситься файлы размером 5 байт, тем более не имеющие никакого отношения к системе.
sasha_s 1. А вы проверяли информацию, выдаваемую вышеупомянутой тулзой? Она выдает действительную информацию? Действительно на диске были эти файлы и их нет в MFT? 2. "Восстановление системы" - это в "System Volume Information", там лежат скриншеты системы....