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-дампа. Для отдельного инструмента состояние и журнал
хранятся в каталоге настроек пользователя.