Skip to content
aymarzipPublic

About

Инструмент динамического анализа Windows-бинарников в изолированной тестовой среде (ETW, дерево процессов, файлы, реестр, PCAPNG).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

ExeScope

Build and Test Release .NET Platform License

Инструмент для динамического анализа подозрительных Windows-бинарников (.exe) в изолированной тестовой среде.

Анализатор работает в режиме пассивного наблюдателя. Он не запускает исследуемый файл самостоятельно: вы выбираете целевой .exe, нажимаете «Ожидать запуск» и запускаете образец руками. ExeScope перехватывает момент старта, привязывается к процессу, строит дерево дочерних процессов и в реальном времени собирает события файловой системы, реестра и сети.

Основные возможности

  • Безопасный сценарий наблюдения: анализатор заранее прогревает сборщики телеметрии, чтобы зафиксировать первые миллисекунды работы процесса, но сам запуск не инициирует.
  • Инспекция файла до старта: сразу после выбора файла вычисляются SHA-256, размер, канонический путь и проверяется цифровая подпись Authenticode. Если файл на диске подменили после выбора, программа сразу выдаст предупреждение.
  • Защита от PID Recycling: процессы идентифицируются по составному ключу (PID, StartTimeUtc). Если Windows отдаст освободившийся PID новому системному процессу, чужие события в сессию не попадут.
  • Дерево процессов: автоматическое отслеживание всех дочерних процессов любой глубины, включая самоперезапуски образца (например, с ключами --child или распаковку во временный каталог). Запись продолжается, пока активен хотя бы один потомок.
  • Повторные запуски в новые сессии: если запустить тот же бинарник еще раз, анализатор автоматически создаст отдельную сессию в новом каталоге, чтобы данные не перемешивались.
  • Сбор системных событий:
    • Файлы: создание, открытие, чтение, запись, переименование, удаление (с фиксацией смещений и размеров операций).
    • Реестр: создание и удаление ключей, установка и удаление значений.
    • Сеть: фиксация активных TCP/UDP соединений с привязкой к PID через Win32 IP Helper (GetExtendedTcpTable), DNS-запросы.
    • Дамп трафика: опциональный захват пакетов в формат .pcapng (с фильтрацией по портам отслеживаемых процессов). Без подделки сертификатов и MITM, зашифрованный трафик сохраняется как есть.
  • Копирование артефактов: созданные или измененные исследуемой программой файлы можно сохранить в сессию. Доступны ограничения по белому списку каталогов, лимиту на размер одного файла и общему бюджету диска. Копирование идет в неблокирующем режиме (FileShare.ReadWrite | FileShare.Delete) с защитой от Path Traversal.
  • Детекция DLL-инъекций и атак на внешние процессы: корреляция сброса исполняемых модулей на диск со стороны исследуемого файла и их последующей загрузки во внешние процессы (например, javaw.exe, explorer.exe). Перехват удаленных потоков (ThreadStart) и открытия хэндлов процессов.
  • Анализ инъекций для античитов Minecraft: специализированное выявление инжекторов читов, кликеров и модов, которые маскируются под лаунчеры или дропперы, сбрасывают DLL во временные папки и внедряют их в процесс игры javaw.exe. Все внедряемые библиотеки автоматически сохраняются в артефакты сессии.
  • Опциональное отслеживание процессов-жертв: флаг в настройках позволяет автоматически регистрировать целевой процесс инъекции в дереве процессов и продолжать сбор его дальнейших файловых и сетевых событий.
  • Автономный HTML-отчет: в конце сессии генерируется отчет без внешних CDN и скриптов. Включает отдельную вкладку и бейджи для обнаруженных инъекций. Все строки, пришедшие от процесса, экранируются во избежание XSS.

Что сохраняется в сессии

Каждая сессия анализа складывается в отдельный каталог session_YYYYMMDD_HHMMSS_PID<ID>:

Файл Описание
session.json Параметры анализа, хеш SHA-256, статус подписи, временные метки UTC и диагностические лимиты
events.jsonl Полный хронологический поток событий в формате JSON Lines
process-tree.json Дерево процессов с аргументами командной строки и кодами завершения
artifacts/ Каталог с безопасными копиями созданных/измененных файлов
artifacts-index.jsonl Журнал сохранения артефактов с хешами, оригинальными путями и статусами
network.pcapng Сетевой дамп для открытия в Wireshark (если был включен захват)
report.html Автономный интерактивный отчет со всеми таблицами и деревом
diagnostics.log Системный лог работы самого анализатора и фиксация потерь буфера

Сборка и запуск

Требования

  • Windows 10 (версия 1809+) или Windows 11
  • .NET 8.0 SDK (для компиляции) или .NET Desktop Runtime 8.0 (для запуска бинарника)

Сборка через скрипты

В корне репозитория лежат готовые скрипты:

# PowerShell
.\build.ps1 -Configuration Release

# Командная строка (CMD)
build.bat Release

Либо стандартной командой CLI:

dotnet build ExeScope.sln -c Release
dotnet test tests/ExeScope.Tests/ExeScope.Tests.csproj -c Release

Сборка и запуск бинарников

При самостоятельной сборке из исходников исполняемые файлы доступны в:

  • src\ExeScope.GUI\bin\Release\net8.0\ExeScope.GUI.exe (Кроссплатформенный GUI)
  • src\ExeScope.Agent.Windows\bin\Release\net8.0-windows\ExeScope.Agent.Windows.exe (Агент перехвата Windows)
  • src\ExeScope.TestTarget\bin\Release\net8.0-windows\ExeScope.TestTarget.exe (Тестовый бинарник)

Быстрый сценарий работы

  1. Запустите агент сбора ExeScope.Agent.Windows.exe (рекомендуется от имени администратора для полной поддержки ETW ядра) или запустите локально GUI — при наличии агента GUI подключится к нему автоматически по gRPC.
  2. Запустите ExeScope.GUI.exe. В поле «TARGET EXE» укажите путь к исследуемому файлу (Ctrl+O). Интерфейс сразу рассчитает SHA-256 и проверит подпись Authenticode.
  3. Нажмите кнопку «▶ Start (Ctrl+R / F5)». Статус перейдет в «Waiting for launch».
  4. Запустите исследуемый файл (двойным кликом в Проводнике или через cmd/powershell).
  5. ExeScope мгновенно зафиксирует появление процесса, перейдет в «Recording» и начнет транслировать телеметрию в реальном времени:
    • Вкладка Event Stream DataGrid: виртуализированный список событий с мгновенным поиском и категориями.
    • Вкладка Process Hierarchy Tree: интерактивное дерево процессов с выделением целей DLL-инъекций (INJECTED TARGET).
    • Панель Threat Verdict Scorecard: оценка риска 0-100 и список индикаторов компрометации (IOC) по матрице MITRE ATT&CK.
  6. Остановить сбор можно кнопкой «⏹ Stop (Ctrl+Q)».
  7. Нажмите «📄 Export HTML (Ctrl+E)» для генерации автономного отчета (в стиле Any.Run) с интерактивными графиками и журналом событий.

Права доступа (Admin vs Standard User)

Приложение спроектировано так, чтобы интерфейс работал под обычным непривилегированным пользователем (asInvoker):

  • Обычный запуск: работает слежение за процессами через Toolhelp32, привязка сетевых соединений через Win32 IP Helper (GetExtendedTcpTable) и безопасное сохранение артефактов из доступных папок (%TEMP%, AppData).
  • Запуск от администратора: дополнительно включает Kernel ETW (Microsoft-Windows-Kernel-File, Registry, Network). Это активирует субмиллисекундный перехват файловых операций ядра, обращений к реестру и расширенной сетевой активности.

Безопасность и изоляция среды

ExeScope предназначен для наблюдения, а не для изоляции операционной системы от вредоносных действий.

Всегда проводите анализ внутри изолированной виртуальной машины (Hyper-V, VMware, VirtualBox или Windows Sandbox):

  • Перед запуском снимите чистый снимок (Snapshot) системы.
  • Убедитесь, что внутри виртуалки нет личных учетных записей, токенов, рабочих паролей и сетевых папок хоста.
  • По окончании исследования откатывайте виртуальную машину к исходному снимку.

Тестовый стенд (TestTarget)

В составе проекта есть специальный тестовый файл ExeScope.TestTarget.exe для проверки работы сборщиков:

  • Создает, читает, дописывает, переименовывает и удаляет файлы.
  • Порождает дочерний процесс (--child).
  • Пишет и удаляет тестовые ключи в ветке HKCU\Software\ExeScopeTest.
  • Запускает локальный HTTP-сервер на 127.0.0.1 и выполняет к нему сетевой запрос.
  • Симулирует сброс DLL на диск и вызов внешнего загрузчика (rundll32.exe) через флаг --simulate-injection или в общем цикле проверок.
  • Поддерживает флаг стресс-тестирования ExeScope.TestTarget.exe --high-load для генерации сотен файловых операций в секунду.

About

Инструмент динамического анализа Windows-бинарников в изолированной тестовой среде (ETW, дерево процессов, файлы, реестр, PCAPNG).

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages