Сохранение данных из незанятого дискового пространства в файл
Возникла необходимость проанализировать содержимое свободных кластеров на диске. Это содержимое (помимо всякого мусора) включает в себя фрагменты удаленных (но не затертых) файлов, а так же фрагменты описания каталогов (папок).
В старом-добром FAT12/16/32 это можно было сделать довольно просто:
Для этого можно было с помощью функции fopen() открыть (создать) новый файл,
а, затем, с помощью fseek() перейти далеко за конец файла (на величину, приближающуюся к размеру свободного пространства диска), и закрыть файл.
В результате, получался файл, в котором и было то что и требовалось.
Но, в случае с NTFS такой финт не проходит.
Итак, вопрос: как, не обладая привелегиями администратора быстренько схранить пустое место на NTFS разделе в один (или несколько) файлов для дальнейшего анализа?
По идее никак — это было бы нарушением безопасности.
Как освобожденные страницы RAM ОС очищает перед тем, как отдать другому процессу, так по идее и дисковое пространство должна очищать перед тем, как давать его другому пользователю. Так как для свободных кластеров диска нет информации о владельце, то читать их никто не должен иметь возможности.
Но если удастся — напишите, мне тоже было бы интересно.
Сделайте образ всего раздела. Затем используйте программы для восстановления.
Для NTFS порекомендую DMDE (dmde.ru). Для восстановления нескольких файлов бесплатна.