2020-04-09

Far Manager: Надежное удаление файлов

Буквально недавно я затронул тему надежной очистки диска с помощью программы BOOTICE. Программа позволяет затереть данные как на диске целиком, так и на конкретном его разделе. Но, как быть, если необходимо удалить, причем надежно, без возможности восстановления, один конкретный файл, ну, или так скажем, группу файлов? Об этом и пойдет речь далее.



Содержание




Как Удаляются Файлы


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

Итак, диск, это просто набор ячеек, они же кластеры, определенного объема. Для жестких дисков на магнитных пластинах, размер кластера равен 512 Байт, современные твердотельные решения могут иметь размер физического блока равным в 4 КБ. 

Каждый кластер имеет свой последовательный номер, начинающийся от нуля. Совокупность кластеров образуют полный объем диска. В принципе, это и есть диск на физическом уровне.

Чтобы как то организовать имеющееся пространство для хранения файлов, было введено два уровня абстракции пространства диска, это таблицы разделов, и файловые таблицы.

Таблица разделов предназначена для разделения пространства диска, на отдельные, последовательные области. Таблица разделов при этом хранится в начале диска, с возможной копией в конце диске. То есть, это четко определённое количество секторов от начала и конца диска, с соответствущей сигнатурой.

Сигнатура — это предопределенная метка, по которой вы всегда определите тип записанных данных. Сигнатура всегда располагается вначале, иными словами, это начальная последовательность битов/байтов данных, по которой система, будь то BIOS, или просто операционная система, или любая другая программа, поймут, с какими данными они сейчас имеют дело.

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

Файловая таблица, это модель организации размещения файлов в конкретном разделе. Файловая таблица содержит сведения о всех файлах конкретного раздела. В подобные сведения входит такая информация, как имя файла, его расположение в пространстве текущего раздела, а именно, какие кластеры текущего раздела файл занимает, атрибуты прав доступа, атрибуты времени создания/изменения и прочие.

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

То есть файловая таблица, это то, что мы привыкли называть NTFS, FAT32, EXT4 и т.д.

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

Отсюда следует интересный вопрос, что будет, если стереть данные с секторов диска не трогая при этом файловую таблицу? Давайте посмотрим😋.

Чистая обнуленная флешка, с только что созданной таблицей разделов MBR, и файловой системой NTFS. В корне флешки создан файл 1.txt. Открыв диск в HEX-редакторе, находим физическое расположение данного файла.


Сектор диска 6293582, полностью вмещает содержимое файла 1.txt. Обратите внимание на сигнатуру файла в физическом расположении. Она начинается с префикса FILE0.


Обнулим данный сектор, то есть удалим файл физически с диска, и сохраним изменения.


Вернемся в окно проводника с открытым разделом флешки, и выполним команду "обновить".


Как видим, файл никуда не исчез. Что еще раз подтверждает то, что система не знает что с файлом физически что-то произошло. Попытаемся открыть файл.


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

К чему данный был проведен данный эксперимент? Подобное правило работает и в обратную сторону. То есть удалив файл, как говорится "мимо корзины", с зажатой клавишей SHIFT, вы удаляете запись с файловой таблицы, но физически, как это было продемонстрировано выше, файл будет находиться какое-то время на диске.

Какое именно время данные будут храниться в данном кластере, зависит от частоты использования диска. Но фактически, для файловой таблицы, сектор диска содержащий данный файл будет отмечен как пустующий. И после, данный сектор может быть просто перезаписан другим файлом. Без какого-либо предварительного обнуления.

Информацию из данных кластеров, можно легко восстановить полностью, или же частично, с помощью специализированных программ. А если файл содержал конфиденциальные данные?

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

В интернете полно различных программ выполняющих подобного рода процедуры. Какие-то из них платные, какие, то нет. Сегодня же, мы протестируем надежное удаление файлов с помощью файлового менеджера Far Manager, который абсолютно бесплатен, и обладает весьма богатым функционалом.

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


Тестовый Сценарий


Чтобы убедиться в надежности удаления файлов выполним два тестовых прогона. В первом, будет использовано обычное удаление файла SHIFT+DEL, а во втором надежное, с помощью Far Manager.

Если смотреть на данный процесс более детально, то алгоритм будет следующий:

1. Создаем первый файл A.txt.
2. Находим его на диске с помощью HEX-редактора, запоминаем его сектор.
3. Создаем второй файл B.txt.
4. Находим его на диске с помощью HEX-редактора, запоминаем его сектор.
5. Удаляем файл A.txt через проводник, сочетанием клавиш SHIFT+DEL.
6. Удаляем файл B.txt надежным удалением с помощью программы Far Manager.
7. Проверяем сектора диска хранившие файлы A.txt и B.txt на наличие остаточной информации.

Теперь, перейдем к действию...


Надежное Удаление Файлов


Все манипуляции я буду проводить на тестовой флешке, которая предварительно была полностью затерта. Для начала создадим в корне диска тестовые файлы, которые мы будем впоследствии удалять. Первым будет файл A.txt со следующим содержимым:

START
AAAAAAAAAAAAAAAA
PASSWORD_A
AAAAAAAAAAAAAAAA
END


Теперь определим номер сектора на диске, в котором данный файл размещен. Для этого воспользуемся HEX-редактором HxD.

Открываем HxD от имени администратора, после чего открываем флешку в режиме чтения.


Выполняем поиск файла A.txt по его содержимому, а именно по строке AAAAAAAAAAAAAAAA.


Искомый сектор найден, его номер 6293584.


Рядом с файлом A.txt создадим файл B.txt со следующим содержимым:

START
BBBBBBBBBBBBBBBB
PASSWORD_В
BBBBBBBBBBBBBBBB
END


Аналогично, находим сектор диска хранящий файл B.txt.


Номер сектора содержащего файл B.txt равен 6293584. Как можно заметить, файлы расположены рядом друг с другом, всего лишь через один сектор.


Теперь перейдем к процессу удаления. Сперва удалим файл A.txt, обычным удалением с помощью сочетания клавиш SHIFT+DEL в проводнике Windows.


Файл удален. Обновим содержимое HEX-редактора HxD клавишей F5. После чего, проверим сектор содержавший файл A.txt.


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

Теперь попробуем удалить файл B.txt, надежным удалением с помощью программы Far Manager. Делается это достаточно просто, достаточно выделить необходимый файл, или файлы, после чего нажать комбинацию клавиш ALT+DEL.


Снова обновим содержимое HEX-редактора, и взглянем на сектор удаленного файла B.txt.


Содержимого файла B.txt в его секторе больше нет. Вместо него, можно заметить, как Far Manager полностью удалил содержимое предыдущего файла и информацию о нем. Кроме этого, так же поменял имя файла находившегося в данном секторе на FAR6894.tmp. При попытке восстановить файл с данного сектора специализированным программным обеспечением, получится восстановить лишь пустой файл с именем FAR6894.tmp. Можно вполне считать что файл B.txt надежно удален.

А содержимое файла A.txt, тем временем, все так же доступно.


Итог


В статье было рассмотрено: Как надежно удалить файлы с помощью Far Manager? Безопасное удаление файлов с помощью программы Far Manager.

Комментариев нет :

Отправка комментария