Инструмент для динамического анализа подозрительных 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(Тестовый бинарник)
- Запустите агент сбора
ExeScope.Agent.Windows.exe(рекомендуется от имени администратора для полной поддержки ETW ядра) или запустите локально GUI — при наличии агента GUI подключится к нему автоматически по gRPC. - Запустите
ExeScope.GUI.exe. В поле «TARGET EXE» укажите путь к исследуемому файлу (Ctrl+O). Интерфейс сразу рассчитает SHA-256 и проверит подпись Authenticode. - Нажмите кнопку «▶ Start (Ctrl+R / F5)». Статус перейдет в «Waiting for launch».
- Запустите исследуемый файл (двойным кликом в Проводнике или через cmd/powershell).
- ExeScope мгновенно зафиксирует появление процесса, перейдет в «Recording» и начнет транслировать телеметрию в реальном времени:
- Вкладка Event Stream DataGrid: виртуализированный список событий с мгновенным поиском и категориями.
- Вкладка Process Hierarchy Tree: интерактивное дерево процессов с выделением целей DLL-инъекций (
INJECTED TARGET). - Панель Threat Verdict Scorecard: оценка риска 0-100 и список индикаторов компрометации (IOC) по матрице MITRE ATT&CK.
- Остановить сбор можно кнопкой «⏹ Stop (Ctrl+Q)».
- Нажмите «📄 Export HTML (Ctrl+E)» для генерации автономного отчета (в стиле Any.Run) с интерактивными графиками и журналом событий.
Приложение спроектировано так, чтобы интерфейс работал под обычным непривилегированным пользователем (asInvoker):
- Обычный запуск: работает слежение за процессами через Toolhelp32, привязка сетевых соединений через Win32 IP Helper (
GetExtendedTcpTable) и безопасное сохранение артефактов из доступных папок (%TEMP%, AppData). - Запуск от администратора: дополнительно включает Kernel ETW (
Microsoft-Windows-Kernel-File,Registry,Network). Это активирует субмиллисекундный перехват файловых операций ядра, обращений к реестру и расширенной сетевой активности.
ExeScope предназначен для наблюдения, а не для изоляции операционной системы от вредоносных действий.
Всегда проводите анализ внутри изолированной виртуальной машины (Hyper-V, VMware, VirtualBox или Windows Sandbox):
- Перед запуском снимите чистый снимок (Snapshot) системы.
- Убедитесь, что внутри виртуалки нет личных учетных записей, токенов, рабочих паролей и сетевых папок хоста.
- По окончании исследования откатывайте виртуальную машину к исходному снимку.
В составе проекта есть специальный тестовый файл ExeScope.TestTarget.exe для проверки работы сборщиков:
- Создает, читает, дописывает, переименовывает и удаляет файлы.
- Порождает дочерний процесс (
--child). - Пишет и удаляет тестовые ключи в ветке
HKCU\Software\ExeScopeTest. - Запускает локальный HTTP-сервер на 127.0.0.1 и выполняет к нему сетевой запрос.
- Симулирует сброс DLL на диск и вызов внешнего загрузчика (
rundll32.exe) через флаг--simulate-injectionили в общем цикле проверок. - Поддерживает флаг стресс-тестирования
ExeScope.TestTarget.exe --high-loadдля генерации сотен файловых операций в секунду.