Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Уничтожение файлов и папок |
Автор: Асоишница 6.10.2014, 20:06 |
Здравствуйте! Собственно это моё задание "Написать windows-приложение для гарантированного удаления файлов(каталогов) без возможности восстановления специализированным ПО". Нашла на википедии информацию по алгоритмам уничтожения: https://ru.wikipedia.org/wiki/%D0%A3%D0%BD%D0%B8%D1%87%D1%82%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85 1.Вопрос собственно в реализации: с чего начать. 2.И может есть у кого какая-нибудь ещё полезная литература на эту тему? 3.Так же вопрос в том, как всё это обстоит с каталогами. Рекурсия? Использую VS2013 если что. Простое не знаю, за что сразу браться. |
Автор: Alca 7.10.2014, 08:46 |
Что-то вроде этого https://bitbucket.org/skynowa/xlib/src/f620b351f285cc60997a436b44cc097bd36de6ba/Include/xLib/IO/File.cpp?at=master#cl-705 |
Автор: Асоишница 7.10.2014, 16:57 |
xvr, буду надеяться, что у меня не такой ![]() Alca, Вы не могли бы вкратце описать, что там происходит? На чём основан алгоритм? |
Автор: sQu1rr 7.10.2014, 20:59 |
А еще в разведке умеют определять последнии состояния байтов с помощью какого-то магнитного анализа ![]() Мне кажется самый простой вариант, записать данные рандомными битами, думаю любой алгоритм делает именно так, параноики делают по несколько итераций. Потому удалить ссылки на эти данные и директории с файловой системы |
Автор: Асоишница 7.10.2014, 23:08 | ||
sQu1rr,
Да, пожалуй, самый простой способ. Но наверняка самый медленный. А "на чём основан алгоритм" это к ссылке, которую прикрепил(а) Alca |
Автор: Dem_max 8.10.2014, 06:44 | ||
на SSD всегда уничтожаются старые данные командой TRIM |
Автор: Alca 8.10.2014, 09:30 | ||
Там же комменты есть Сначала затираешь атрибуты файла, потом файл заполняется 0x55, 0xAA, random char, потом размер файла в нуль, потом ресетится время создание, изменение файла, потом рендомное переименование, потом уже удаление файла. Затирку файла можно делать несколько раз |
Автор: DarthTon 8.10.2014, 14:09 |
По поводу перезаписи содержимого файла - лучше перезаписать не файл, а сектора диска его содержащие: http://msdn.microsoft.com/en-us/library/windows/desktop/aa364572(v=vs.85).aspx + http://msdn.microsoft.com/en-us/library/windows/desktop/dd405526(v=vs.85).aspx. Получим список групп кластеров файла относительно начала тома (не сработает для файлов <1КБ ибо они хранятся непосредственно в МФТ). Так же надо найти смещение тома относительно диска - http://msdn.microsoft.com/en-us/library/windows/desktop/aa365174(v=vs.85).aspx |
Автор: Асоишница 9.10.2014, 21:21 |
Alca, буду по всей видимости делать по Вашему алгоритму. Потому что обычные алгоритмы перезаписи из википедии программа recuva у меня во всяком случае восстанавливает.... Вот только откуда взяты 0х55 и 0хАА? |
Автор: sQu1rr 9.10.2014, 23:21 |
они чередуют нули и еденицы (бинарные). |
Автор: baldina 10.10.2014, 01:22 | ||
Асоишница, раз задание про невозможность восстановления программным способом, т.е. без специализированных аппаратных решений, анализа намагниченности и т.п., то достаточно один раз перезаписать файл произвольными данными, например 0xFF. В целом получается такой алгоритм
|
Автор: Dem_max 11.10.2014, 13:47 | ||
ГОСТ на безопастное удаление файлов |
Автор: baldina 14.10.2014, 10:33 |
что за гост? |
Автор: Dem_max 14.10.2014, 10:53 |
НЕ не ГОСТ, ошибся, думал в ГОСТ есть алгоритм, запамятовал просто https://ru.wikipedia.org/wiki/Уничтожение_данных |
Автор: Асоишница 15.10.2014, 22:32 |
Всем спасибо! Сделала по методу Alca, recuva даже не видит файл. Теперь буду мучиться с wpf(надо же начинать с ним знакомиться), но это уже совсем другая история ![]() |