Перейти к содержанию

GUI

Основное приложение

Запустите:

python main.py
python main.py path/to/image.img

Нажмите Открыть образ на панели инструментов или Ctrl+O, затем выберите том в списке источников левой панели. Двойной щелчок открывает каталог, а файл — по типу: .txt, .log, .ini, .csv, .md, .json, .xml и другие текстовые файлы уходят в системный редактор (Блокнот на Windows), а бинарные файлы — во встроенный HEX-редактор (клавиша F3). В нём можно изменять байты в HEX- и ASCII-колонках, искать последовательности, переходить к смещению, отменять/повторять правки и сохранять изменения. F5 копирует выбранные файлы в другую панель: из образа на локальный диск или с локального диска в доступный для записи образ. F7 создаёт папку; переименование и удаление используют тот же встроенный FAT32-движок.

Интерфейс двухпанельный: вкладки каталогов, отметка файлов, массовые операции, светлая/тёмная тема и журнал. Если выбранный том не открывается, приложение может запустить авто-подбор; тот же режим доступен через Инструменты → Подобрать том автоматически….

Центр всех CLI-команд

Кнопка Командный центр на панели инструментов или Ctrl+Shift+X открывает интерфейс всех подкоманд python -m mountfile из mountfile.cli.COMMANDS. Выберите команду, прочитайте её фактическую справку --help и вводите аргументы по одному на строку. Строка передаётся как один буквальный аргумент: пробелы и символы оболочки не запускают shell и не интерпретируются. Кнопка вставки пути добавляет выбранный путь как отдельный аргумент. Результат, код завершения и ошибки показываются в том же окне; длительная операция не блокирует интерфейс. Вывод в окне ограничен 2 MiB, а найденные совпадения ограничивайте параметрами --max-results/--max-hits команды.

Это покрывает перечисленные в руководстве CLI команды чтения, извлечения, поиска содержимого и raw-образа, YARA, поиска сигнатур в явно заданных ranges, анализа временных меток, нормализации/сборки timeline, slack, авто-подбора тома, RT809, live-diff и прочие команды package CLI. Для работы YARA, NTFS/EXT и части forensic-команд нужны соответствующие optional-зависимости; справка не обещает обнаружение unallocated allocation-map и не подменяет предварительно найденные filesystem extent-диапазоны. Результаты CLI-функций, которые создают внешние файлы, сохраняются по путям и правилам, указанным самой командой.

put, mkdir, mv и rm перед запуском показывают отдельное предупреждение с точным перечнем передаваемых аргументов. Только явное нажатие Да добавляет обязательный CLI-флаг --yes; отмена не вызывает backend. CLI-опция --backup доступна этим командам там, где это указано в их справке; если одноимённый IMAGE.bak уже существует, CLI может его заменить. Отдельный универсальный WriteEngine с транзакционным журналом и rollback остаётся программным API, а не другим скрытым способом записи из окна: GUI использует уже выбранный провайдер/writer тома и сохраняет его текущие подтверждения.

Сеть и архивирование отсутствуют в package CLI и не реализованы в основной двухпанельной сборке, поэтому пункты-заглушки удалены, а не выдают обещание доступной функции. Подкоманды и справка центра строятся из реального реестра CLI, так что их перечень и интерфейс синхронизированы автоматически. Отдельные библиотечные API, которые не зарегистрированы в CLI, не запускаются этим окном.

Синяя рамка показывает активную панель. В её шапке явно указан источник и режим доступа: Не открыт, Только чтение, Запись доступна или Локальный диск. Недоступные действия отключены и объясняют причину в подсказке. F6 перемещает только из локальной панели; извлечение из образа выполняется через F5 и не удаляет исходные данные.

Поле Фильтр по имени (Ctrl+F) отбирает файлы только в текущем каталоге, без учёта регистра. Это не поиск по содержимому или всему образу. Очистите поле крестиком, чтобы вернуть весь список. Скрытые фильтром отметки снимаются, а Ctrl+A отмечает только видимые файлы. При смене каталога, вкладки или тома фильтр и отметки сбрасываются, чтобы одноимённый файл в другом месте случайно не попал в массовую операцию. Множественное выделение мышью также используется для копирования, перемещения и удаления; отметки Space имеют приоритет.

В небольшом окне второстепенные колонки автоматически скрываются, оставляя место для имени файла. Полные значения доступны в подсказках в видимых ячейках; увеличьте окно, чтобы вернуть дату и атрибуты. Светлая и тёмная темы сохраняют одинаковую структуру и заметные состояния фокуса.

Перед заменой существующих локальных объектов приложение показывает список конфликтов; безопасный выбор по умолчанию — Нет. Копирование в ту же папку и копирование папки в саму себя блокируются. Локальное удаление выполняется навсегда, без корзины и требует отдельного подтверждения.

В меню Инструменты → DFIR triage (только чтение)… доступны SHA-256 образа, ограниченный raw-поиск по строке/regex с byte offset и импорт timeline CSV с консервативной проверкой timestomp. Диалог не изменяет исходный образ. Это triage-слой, а не полноценный filesystem-aware collector, YARA scanner, carver или chain-of-custody система.

Запись изменяет файл образа

Импорт, создание каталога, переименование и удаление не являются read-only операциями. Закройте образ в других программах, сохраните копию и только затем подтверждайте действие.

Полезные клавиши

Клавиша Действие
Enter / двойной щелчок открыть каталог; текстовый файл — в Блокноте, остальное — во встроенном HEX-редакторе
Backspace каталог выше
Space / Insert отметить файл
Tab / Ctrl+U другая панель / поменять панели
Ctrl+T / Ctrl+W создать / закрыть вкладку
Enter / F3 текстовые файлы — в системном редакторе; остальное — во встроенном HEX-редакторе
F4 текст в образе — встроенная правка с записью; локальный текст — системный редактор
F5 / F6 копирование / перемещение между панелями
F7 / F8 создать каталог / удаление
Ctrl+O / Ctrl+R открыть образ / обновить
Ctrl+I добавить файл в AI-анализ
Ctrl+F фильтр имён текущего каталога
Ctrl+Shift+X центр всех package CLI-команд
F9 скрыть / вернуть меню
F11 полный экран

Внутри HEX-редактора Ctrl+S сохраняет, Ctrl+F ищет HEX-последовательность или текст, Ctrl+G переходит к десятичному или 0x-смещению. Назад к панелям и закрытие приложения предупреждают о несохранённых изменениях.

F4 редактирует текстовые файлы до 2 MiB (ini, cfg, txt, log, json, xml, csv, yaml, md) и сохраняет исходную UTF-8 или CP1251 кодировку и переводы строк. FAT12/16, FAT32, ограниченный профиль чистого ext2 и exFAT поддерживаются встроенно. Native ext2 не требует debugfs, использует allowlisted features и 1/2/4 KiB blocks; regular files и каталоги поддерживают bounded direct/single/double-indirect addressing до 64 MiB (без sparse/triple-indirect); неподдерживаемый или нечистый том не получает native RW. Для иных ext2 features и ext3/ext4 GUI оставляет том read-only: legacy debugfs (PATH, debugfs.exe или WSL/e2fsprogs) является только явным library-level compatibility opt-in allow_legacy_debugfs=True, не скрытым GUI fallback. Перед записью приложение создаёт резервную копию образа рядом с ним; отказ от копии отменяет запись. Native ext2 сначала проверяет staged extent, затем применяет изменения; внешние ext writers также используют временную копию и read-back. Native NTFS writer отключён: GUI оставляет NTFS read-only. Отдельный системный NTFS backend доступен только как явный library-level compatibility opt-in, а не как скрытый GUI fallback.

При открытии текстового файла через Enter или F3 из образа Mount File создаёт временную копию и запускает системный редактор (на Windows — Блокнот). Окно подтверждения в Mount File просит сначала сохранить копию и закрыть редактор, затем вернуться и нажать «Да» для проверки и импорта. Отмена или «Нет» оставляет образ без изменений. Перед записью создаётся резервная копия; если исходный файл в образе изменился параллельно, импорт отклоняется, чтобы не затереть эти изменения.

Тема, размер шрифта и видимость журнала настраиваются в Конфигурация → Настройки. GUI при старте проверяет GitHub Releases в фоне; отсутствие сети не должно блокировать работу. Для запрета проверки задайте MOUNTFILE_NO_UPDATE=1.

Отдельный mountfile.py

Это другой, одностраничный инструмент: он монтирует .img, .iso, .bin, .raw, .vhd или .vhdx средствами операционной системы. Он не использует pytsk3, не требует сети и не является заменой основному файловому менеджеру.

python mountfile.py                 # GUI
python mountfile.py dump.img --to /mnt/x
python mountfile.py dump.img --open
python mountfile.py --list
python mountfile.py --unmount /mnt/x

Механизм зависит от ОС: Linux — udisksctl или mount -o loop,ro, macOS — hdiutil, Windows — PowerShell Mount-DiskImage для ISO/VHD/VHDX. Нужные права и поддержка конкретного формата определяются ОС; приложение не обещает монтирование любого raw-дампа. Для отдельного инструмента состояние и журнал хранятся в каталоге настроек пользователя.