Проблема
Невозможно визуально определить факт переименования файла, если изменено только имя, а содержимое и остальные атрибуты (дата модификации, размер) остались без изменений. Стандартные проводники ОС не показывают историю имени.Причины
- Файловые системы (NTFS, ext4, APFS) не хранят историю переименований как таковую. Изменение имени — это запись нового имени в индекс (MFT, inode) и удаление старой записи.- Единственный способ зафиксировать факт — анализ журналов изменений файловой системы (USN Journal в Windows, Auditd в Linux) или метаданных, созданных до переименования (например, путь в tmp файлах, ссылки в реестре или базах данных).
Решение
1. Определение факта переименования файла в Windows (NTFS) с помощью $MFTАнализ Master File Table позволяет восстановить оригинальное имя, если оно было изменено, но файловая система ещё не перезаписала старую запись.
Инструмент: `MFT2CSV` (ForensicAnvil.ru рекомендует) или `MFTECmd` (Eric Zimmerman).
Команда (пример для MFTECmd):
mftecmd
.exe -f "C:\path\to\$MFT" --csv "C:\output"Результат: в колонке `ParentPath` отобразится последнее известное имя; в логе `$FILE_NAME` (атрибут 0x30) может остаться оригинальное имя, если файл не переименовывали после создания — но для переименований это неинформативно. Для восстановления истории нужно парсить журнал USN.
2. Анализ истории переименования файла через USN Journal
Инструмент: `UsnJrnl2Csv` (или `MFTECmd` с флагом `--usn`).
Команда:
mftecmd
.exe -f "C:\path\to\$J" --usn --csv "C:\output"В выводе ищутся записи типа `RENAME` с указанием `OldFileName` и `NewFileName`. Это покажет точную хронологию изменений имени для каждого файла. Внимание: журнал USN имеет ограниченный размер — старые записи автоматически удаляются.
3. Использование PowerShell для проверки имени файла через альтернативные потоки данных (NTFS ADS)
Файл может содержать оригинальное имя в составе своих метаданных (например, в `:$DATA` или `:Zone.Identifier`), если источник файла известен (например, загрузка из интернета — в ADS сохраняется URL, но не исходное имя).
Команда (проверить на наличие ADS):
get
-Item C:\path\file.txt -Stream Если в потоке `Zone.Identifier` есть `ReferrerUrl=...`, это не является доказательством смены имени, но может указать на источник.
4. Восстановление оригинального имени файла по его содержимому (LTFS, exif)
Если файл был переименован, но его содержимое уникально (например, EXIF-данные изображения содержат поле `XMP:PreservedFileName` или `Thumbnail:OriginalName` в некоторых камерах), можно извлечь это поле.
Инструмент: `exiftool `
Команда:
exiftool
-preservedfilename C:\path\file.jpgРезультат: `Preserved File Name : DSC_0012.JPG` — это имя, которое файл имел на момент съёмки (но не обязательно при последнем переименовании).
5. Анализ логов ОС и приложений (особенно для файлов, созданных приложениями)
Пример: Word/Excel (Office) записывают `OriginalPath` в файл `~$filename.docx` (временный файл в папке пользователя) или в метаданные самого документа (XML: `OriginalDocument`). Извлекается через `OleDumper` или прямой парсинг ZIP-архива (docx — это zip).
Действие: разархивировать docx, найти `docProps/app.xml`, протестировать поле `Template` или `DocSecurity` — в некоторых версиях может быть путь, указывающий на предыдущее имя файла.
6. Оценка принудительности изменения — при отсутствии логов иных способов нет
Если файл переименован в среде без включённого аудита (по умолчанию в Windows выключен), определить факт переименования невозможно. Единственное исключение — физический анализ MFT (п.1) до перезаписи журнала.
Важно:* Все методы легально применимы на собственных устройствах или устройствах, к которым есть административный доступ и права на анализ файловой системы (с разрешения). Нарушение ч. 1 ст. 272 УК РФ — неправомерный доступ к компьютерной информации.