oula alsheikh Ответов: 2

Перехитрить удаленный файл на жестком диске


Если я хочу удалить файл A
Таким образом, указатель на этот файл будет удален только
а ее содержание все равно будет на харде

если я хочу перезаписать этот контент, чтобы пользователь не смог восстановить содержимое этого файла с помощью записи из другого файла content B on deleted file a Content
какой будет подходящая процедура для меня в C#

Что я уже пробовал:

Copyfile для заполнения всех доступных жестких дисков и перезаписи удаленных файлов
но я думаю, что это неправильно

2 Ответов

Рейтинг:
1

Jochen Arndt

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

Но будет ли это перезаписывать одни и те же физические сектора на диске, зависит от файловой системы. Хотя это должно работать для FAT, это может не сработать для NTFS. Это интересный вопрос, на который я не получил ответа в результате (довольно короткого) веб-исследования.

Если размер файла очень мал (меньше КБ), он должен работать и для NTFS, потому что первые байты данных хранятся в MFT, расположение которого на диске, вероятно, не изменяется (создание нового MFT вместо повторного использования существующего было бы менее производительным). Это также гарантирует, что по крайней мере первые байты больших файлов не будут восстановлены.


oula alsheikh

вы упомянули об этом, когда мы перезаписываем содержимое файла новыми данными
,новые данные не будут записываться в исходные секторы данных в NTFS
Таким образом NTFS отмечает старые данные как удаленные и создает новые данные в виде нового файла
таким образом, для перезаписи файла с n байтами потребуется 2n или, возможно, больше байтов для старых и новых данных
есть какие-нибудь ссылки, пожалуйста

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

Jochen Arndt

Я написал:"это может не сработать для NTFS".
Это значит, что я не знал этого наверняка.

NTFS использует MFT для файлов и каталогов. Они не должны располагаться в новом секторе при перезаписи существующего файла (опять же: should = не наверняка, но очень вероятно в этом случае). Краткое описание можно найти по адресу http://ntfs.com/ntfs-mft.htm-

Не заботьтесь о методах высокого уровня. Все зависит от файловой системы. У меня нет никаких ссылок, но я сказал вам, что это интересная тема, которая требует некоторых исследований.

Рейтинг:
0

CPallini

Чтобы сделать это программно, я боюсь,что вы должны пойти очень низко. Если бы вам разрешили использовать инструмент, то ваша работа была бы проще, см., например: 5 Инструментов Для Безвозвратного Удаления Конфиденциальных Данных С Вашего Жесткого Диска [Windows][^].