Skip to content

About

Сканер закрепления, RAT-подобных угроз и хайджеков. 16 этапов, 3 прохода эвристики, карантин, realtime guard, служба LocalSystem.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

XwormKiller — поиск закрепления, RAT-подобных угроз и хайджеков

XWORMKILLER · v4.6.0 · Windows x64 · .NET 8

Один exe. Без установки. Без телеметрии. Ищет закрепление, RAT-подобные процессы, хайджекеты реестра и подозрительные файлы — и умеет это чинить.


Release Stars Downloads Issues

.NET Windows License PRs


Поставь звезду этому репозиторию

Если инструмент тебе помог — звезда это лучшая благодарность. Она стоит один клик, а проекту помогает быть заметнее.


Содержание

Что это Возможности Что проверяет
Интерфейс Быстрый старт CLI
Карантин Защита в реальном времени Служба
Сборка Архитектура FAQ
Реакции Участие Лицензия

Что это

XwormKiller — портативный сканер и чистильщик Windows-закрепления. Он не пытается быть антивирусом с облаком и эвристиками на 500 МБ. Он делает одну вещь хорошо: проходит по всем местам, куда RAT, стилер или майнер обычно прописывается, оценивает каждую находку по весам и даёт понять, что с ней делать.

Три принципа, на которых всё построено:

  1. Три прохода вместо одного. Файл сначала оценивается эвристикой (ThreatAnalyzer), затем глубоким разбором (DeepScan: PE-секции, энтропия, контейнеры, макросы, скрипты), затем подтверждающим проходом (Confirm), который отсекает ложные срабатывания по структуре, поведению и контексту.
  2. Ничего не удаляется молча. В безопасном режиме автоматически обрабатываются только находки с высоким score, остальное уходит в отчёт и ждёт решения. Всё удалённое сначала попадает в карантин с SHA256 и исходным путём.
  3. Сканер не должен выглядеть как малварь. Строки семейств и маркеры хранятся в base64 и собираются в памяти при старте — именно из-за открытых строк вида XWorm/RedLine антивирусы раньше принимали сам сканер за вредонос.
   ┌──────────────┐     ┌──────────────┐     ┌──────────────┐     ┌─────────────┐
   │ 16 этапов    │ ──▶ │ ThreatAnalyzer│ ──▶ │  DeepScan    │ ──▶ │   Confirm   │
   │ закрепления  │     │  веса+подписи │     │ PE/контейнер │     │ анти-FP    │
   └──────────────┘     └──────────────┘     └──────────────┘     └──────┬──────┘
                                                                          │
                                              ┌───────────────────────────┴──────────┐
                                              ▼                                      ▼
                                     score ≥ 110 → карантин                 отчёт TXT / JSON
                                     score ≥ 120 → удаление                 решение пользователя

Возможности

🔍 Поиск закрепления

  • 16 этапов проверки автозапуска и персистентности
  • Реестр Run / RunOnce (HKCU + HKLM)
  • Active Setup, AppInit_DLLs, AppCertDlls
  • Winlogon (Shell, Userinit, Notify)
  • IFEO и SilentProcessExit (debugger hijack)
  • Службы и драйверы, включая BYOVD-кандидатов
  • Задачи планировщика: скрытые, highest, PowerShell
  • WMI-подписки (EventFilter → EventConsumer)
  • COM-хайджеки InprocServer32 / LocalServer32
  • Политики браузеров: расширения, стартовая, прокси
  • LSA packages, Print monitors, Netsh helpers
  • Исключения Windows Defender
  • Прокси, файловые ассоциации, hosts

🧪 Анализ файлов

  • PE-эвристики: секции, энтропия, entry point, .NET, static link
  • Цифровая подпись и издатель (Authenticode / WinVerifyTrust)
  • Mark-of-the-Web, двойные расширения, пробел перед .exe
  • Скрипты: PowerShell, VBS, JS, BAT, HTA, WSF
  • Контейнеры: ZIP и Office-архивы, ISO / IMG / VHD, RAR / 7z по расширению и эвристике
  • Office: макросы в docm/xlsm/pptm, OLE-стримы
  • LNK, REG, URL, CHM, MSC, SettingContent-ms
  • Поиск по сигнатурам семейств (XWorm, AsyncRAT, RedLine, Lumma, …)
  • Три прохода + белый список доверенных путей и издателей

🛡️ Реакция и лечение

  • Карантин с метаданными и журналом index.tsv
  • Восстановление файла или всех сразу
  • Завершение процесса (NtSuspendProcess → TerminateProcess)
  • Удаление задач, служб и значений реестра
  • Чистка WMI-подписок
  • Точка восстановления перед агрессивной очисткой
  • Отчёты TXT и JSON, статистика по этапам

⚙️ Режимы работы

  • GUI с тёмной темой и таблицей находок
  • Консольный режим для скриптов и автоматизации
  • Защита в реальном времени (FileSystemWatcher + опрос Run)
  • Служба LocalSystem — защита до входа в систему
  • Периодическое сканирование: 1 / 6 / 12 / 24 / 72 часа
  • Трей, автозапуск, задача планировщика без UAC
  • Доверенные файлы и папки
  • Один экземпляр (IPC), быстрый вызов окна

Что проверяет

Этапы сканирования

# Этап Что ищет
1 Автозапуск (реестр) Run / RunOnce, неизвестные бинарники, аргументы с -enc, mshta, rundll32
2 Active Setup StubPath, который выполняется при входе в систему
3 Папки автозапуска Startup пользователя и Common, разрешение .lnk до цели
4 Winlogon / AppCertDlls подмена Shell/Userinit, сторонние AppCertDlls
5 IFEO / SilentProcessExit Debugger-хайджеки и тихий запуск при завершении процесса
6 Службы и драйверы ImagePath, неподписанные драйверы, путь вне System32, svchost-маскировка
7 Задачи планировщика скрытые задачи, HighestAvailable, запуск PowerShell/CMD из Temp
8 WMI-подписки постоянные __EventFilter + CommandLineEventConsumer
9 COM-хайджеки переопределения CLSID в HKCU, DLL вне System32
10 Политики браузеров принудительные расширения, HomepageLocation, прокси-политики
11 LSA / AppInit / Print Authentication Packages, AppInit_DLLs, print monitors, netsh helpers
12 Исключения Defender добавленные вручную пути и процессы
13 Прокси и ассоциации системный прокси, подмена обработчиков файлов
14 hosts перенаправления доменов антивирусов и обновлений
15 Процессы маскировка имён, подозрительный родитель, командная строка, путь запуска
16 Сеть netstat -ano, RAT-порты, внешние соединения и привязка к PID

Веса и пороги

Score Уровень Что происходит в --safe Что происходит в --aggressive
0–39 Clean только отчёт только отчёт
40–79 Low только отчёт отчёт
80–110 Suspicious отчёт + решение пользователя авто-действие при score ≥ 100
111–120 Malicious карантин карантин
121+ Malicious удаление удаление

Точные веса и правила лежат в ThreatAnalyzer, DeepScan и Confirm. Проверка подтверждения отсекает подписанные системные файлы, известные good-пути и файлы без behavioural-маркеров.

Что попадает в карантин

Каждый изолированный файл — это пара:

quarantine/
├── 2026-11-02_18-23-20_ab12cd34.exe     ← сам файл
├── 2026-11-02_18-23-20_ab12cd34.info.txt ← путь, SHA256, score, причины
└── index.tsv                             ← журнал: изоляция / восстановление

Интерфейс

Тёмная тема, ничего лишнего: сверху — статус и кнопки, в центре — таблица находок, справа от неё — действия.

Шапка

  • логотип и версия, by Manyl123
  • бейдж АДМИНИСТРАТОР / БЕЗ ПРАВ
  • статус защиты в реальном времени

Панель действий

  • Быстрая — реестр, службы, процессы, сеть
  • Полная — плюс PE-эвристики и файлы
  • Очистка — агрессивный режим
  • Карантин, Отчёты, Справка

Таблица находок

  • № · Тип · Цель · Вердикт · Score · Действие
  • сортировка и выделение нескольких строк
  • правый клик: подробности, папка, «доверять», VirusTotal

Кнопки решения

  • В карантин · Удалить · Завершить · Починить · Пропустить
  • прогресс по этапам и итоговая сводка

Трей: автозапуск, задача планировщика, расписание (1 / 6 / 12 / 24 / 72 ч), исключения Defender, доверенные файлы, установка службы.

Диалоги: Карантин (восстановить один / все), Доверенные файлы, Справка с полным списком ключей.


Быстрый старт

1. Скачать

Возьми последний XwormKiller.exe из Releases. Один файл, ничего ставить не нужно.

XwormKiller.exe

2. Запустить

Сценарий Команда
Обычная проверка в окне XwormKiller.exe
Тихая проверка для скрипта XwormKiller.exe -s --no-pause
Проверить один файл XwormKiller.exe --scan-file "C:\Users\me\Downloads\file.exe"
Агрессивная очистка XwormKiller.exe -a
Только иконка в трее XwormKiller.exe --tray

3. Прочитать отчёт

Отчёты лежат рядом с exe:

logs\XwormKiller_2026-11-02_18-23-20.txt
logs\XwormKiller_2026-11-02_18-23-20.json   (с --json)

Требования

  • Windows 10 / 11, x64
  • Права администратора — только для действий с HKLM, службами, драйверами, исключениями Defender и точкой восстановления
  • .NET 8 не нужен: релиз собран как self-contained single-file

Командная строка

XwormKiller.exe [режим] [ключи]

Режимы

Ключ Описание
(без ключей) GUI
-s, --safe Проверка и отчёт. Файлы: score > 110 → карантин, > 120 → удаление. Остальное — решение пользователя
-a, --aggressive Проверка + автодействия по всем находкам, порог авто-действий score ≥ 100

Ключи

Ключ Описание
--gui Открыть окно, даже если указаны другие ключи
-n, --no-pause Без вопросов и паузы, только отчёт
--fast Быстрая проверка: автозапуск, службы, процессы, сеть
--json Дополнительно сохранить JSON-отчёт
--ascii Только ASCII (старые консоли и шрифты)
--no-restore-point Не создавать точку восстановления
--quarantine Показать карантин и выйти
--restore <N|all> Вернуть файл №N или всё
--autostart / --autostart-on / --autostart-off Состояние и управление автозапуском (HKCU\...\Run)
--task-status / --task-on / --task-off / --task-xml Задача планировщика с highest privileges
--scan-file <путь> Проверить файл или папку
--defender-exclude Добавить программу в исключения Defender
--service-status / --service-install / --service-uninstall / --service-start / --service-stop Служба LocalSystem
--tray Тихий запуск, только трей
-h, --help Справка
-v, --version Версия

Переменные окружения

Переменная Действие
XK_WIDTH Принудительная ширина консольного вывода
XWORMKILLER_SCAN_NOW=1 Запустить фоновое сканирование службы сразу, не ждать интервал

Карантин и восстановление

# посмотреть
XwormKiller.exe --quarantine

# вернуть конкретный файл
XwormKiller.exe --restore 3

# вернуть всё
XwormKiller.exe --restore all

В GUI: кнопка Карантин → выбор записи → Восстановить.

При восстановлении файл возвращается на исходный путь; если путь занят или недоступен, запись остаётся в карантине и попадает в лог.


Защита в реальном времени

RealtimeGuard работает в двух плоскостях:

Что Как
Файловая система FileSystemWatcher на Temp, AppData, Downloads, Desktop, Startup
Реестр периодический опрос Run / RunOnce в HKCU и HKLM
Реакция ThreatAnalyzer.AnalyzeFile → порог score → карантин
Исключения доверенные файлы и папки, настройки в %APPDATA%\XwormKiller\settings.json

Настройки:

{
  "Realtime": true,
  "AutoQuarantine": true,
  "ScanOnStart": true,
  "AutoStart": false,
  "ScanIntervalHours": 24
}

Лог: logs\guard.log.


Служба LocalSystem

Служба даёт защиту до входа в систему и работает от LocalSystem:

# установить (нужен администратор)
XwormKiller.exe --service-install

# состояние
XwormKiller.exe --service-status
  • Данные службы: %ProgramData%\XwormKiller
  • Периодическое сканирование: 1 / 6 / 12 / 24 / 72 часа (настраивается в трее)
  • Уведомления в сессию пользователя: ServiceNotify (CreateProcessWithTokenW + WTSQueryUserToken)
  • Если уведомление доставить не удалось — запись в logs\notifications.log

Сборка из исходников

# обычная сборка
dotnet build -c Release

# портативный single-file exe (как в релизе)
dotnet publish -c Release -r win-x64 --self-contained true `
  -p:PublishSingleFile=true `
  -p:EnableCompressionInSingleFile=true `
  -p:IncludeNativeLibrariesForSelfExtract=true `
  -o publish

# подпись (самоподписанный сертификат из signing\)
powershell -NoProfile -ExecutionPolicy Bypass -File signing\make-cert.ps1
powershell -NoProfile -ExecutionPolicy Bypass -File signing\sign.ps1

Подпись накладывается после публикации: любая пересборка снимает её.

Структура проекта

XwormKiller/
├── Program.cs          # точка входа, сканер, эвристика, GUI, трей, отчёты
├── Guard.cs            # RealtimeGuard, настройки, доверенные пути
├── DeepScan.cs         # глубокий разбор PE, контейнеров, скриптов, Office
├── Confirm.cs          # подтверждающий проход и вердикты (анти-FP)
├── ServiceHost.cs      # ServiceMain / ControlHandler для SCM
├── ServiceMode.cs      # тело службы, каталог ProgramData
├── ServiceScanner.cs   # периодическое фоновое сканирование
├── ServiceNotify.cs    # уведомления из сессии 0 в сессию пользователя
├── Sigs.cs             # base64-подписи семейств
├── Tokens.cs           # base64-токены маркеров
├── app.ico / app.manifest
├── XwormKiller.csproj
└── signing/            # make-cert.ps1, sign.ps1, .cer, README

Архитектура

flowchart TD
    A[Main / GUI] --> B[BuildStages · 16 этапов]
    B --> C[ThreatAnalyzer]
    C --> D[DeepScan]
    D --> E[Confirm]
    E --> F{Score}
    F -->|≥ 120| G[Удаление]
    F -->|≥ 110| H[Карантин]
    F -->|иначе| I[Отчёт + решение]
    H --> J[quarantine/ + index.tsv]
    I --> K[logs/TXT + JSON]
    G --> K
    L[RealtimeGuard] --> C
    M[ServiceScanner] --> C
    N[Tray / Autostart / Task] --> A
Loading

Ключевые классы

Класс Ответственность
Program Точка входа, режимы, этапы скана, действия, отчёты
ThreatAnalyzer Веса, сигнатуры, PE/скрипты/контейнеры, подпись, whitelist
DeepScan Глубокий разбор файлов и архивов
Confirm Подтверждение вердикта, анти-FP, FileVerdict
RealtimeGuard Наблюдение за папками и Run-ключами
ServiceHost / ServiceMode Служба LocalSystem
ServiceScanner Периодические проверки
ServiceNotify Уведомления в пользовательскую сессию
KillerForm GUI: таблица находок, действия, трей
QuarantineDialog / TrustedDialog / HelpDialog Диалоги

FAQ

Почему Windows Defender ругается на сам сканер?

Эвристический сканер содержит PE-разбор, работу с автозапуском и строками семейств — по поведению это похоже на малварь. Поэтому строки хранятся в base64, а в трее есть два пункта:

  • Windows Defender → Исключить программу (нужен админ)
  • Windows Defender → Пожаловаться на ложное срабатывание (открывает форму Microsoft и копирует SHA256)
SmartScreen пишет «Неизвестный издатель». Это нормально?

Да. Релиз подписан самоподписанным сертификатом: на этом ПК подпись валидна, на чужих — нет. Для нулевого предупреждения нужен покупной OV/EV-сертификат либо накопленная репутация.

Нужны ли права администратора?

Для пользовательского сканирования — нет. Для HKLM, служб, драйверов, установки службы, исключений Defender и точки восстановления — да. В шапке GUI показывается АДМИНИСТРАТОР или БЕЗ ПРАВ.

Куда уходят данные?

Никуда. Нет сети, нет телеметрии, нет облака. netstat читается локально, отчёты пишутся рядом с программой. Ссылка на VirusTotal открывается только по клику в контекстном меню.

Есть 32-битная версия?

Нет, только x64. Сборка win-x64, PlatformTarget=x64.

Можно запускать с флешки?

Да. Программа портативная: карантин, логи и настройки создаются рядом с exe (для службы — в %ProgramData%\XwormKiller).

Сканер что-то нашёл, но это точно не вирус. Что делать?

Выдели находку → правый клик → Доверять файлу (исключение). Путь попадёт в settings.json и больше не будет считаться угрозой. Для проверки вердикта используй Подробности — там список причин и score.


Реакции и обратная связь

⭐ Поставь звезду

Star this repo

Звезда — это не просто цифра. Это сигнал, что инструмент нужен, и повод продолжать его развивать.

Что означают реакции

Ставь реакцию на закреплённый issue «Реакции» — так видно, чего проекту не хватает:

Реакция Значение
⭐ «Пользуюсь, спасибо»
🐛 «Нашёл баг» — лучше сразу в Bug report
💡 «Есть идея» — в Feature request
🛡️ «Ложное срабатывание» — в False positive
🔥 «Нужна версия под мой сценарий»
❤️ «Просто нравится»

Star History

Star history

Поделиться

Если не жалко — кинь ссылку туда, где сидят люди с той же проблемой:

https://github.com/Manyl123/XwormKiller

Участие в разработке

  1. Форкни репозиторий.
  2. Сделай ветку: git checkout -b feature/my-change.
  3. Собери и проверь: dotnet build -c Release.
  4. Открой PR по шаблону — опиши, что меняется и как это проверить.

Правила простые: один PR — одна тема, без рефакторинга «заодно», новые эвристики — с примером файла или понятным описанием условия.

См. CONTRIBUTING.md, SECURITY.md и CHANGELOG.md.


Roadmap

  • YARA-правила как дополнительный источник весов
  • Проверка хеша через VirusTotal API (опционально, по ключу)
  • Экспорт находок в CSV / SIEM (CEF, JSON Lines)
  • Тёмная/светлая тема на выбор
  • Английская локализация интерфейса и отчётов
  • Подпись релизов OV-сертификатом
  • Плагины для собственных проверок

Лицензия

MIT — см. LICENSE.


Сделано Manyl123 · XwormKiller v4.6.0 · Windows x64

star

About

Сканер закрепления, RAT-подобных угроз и хайджеков. 16 этапов, 3 прохода эвристики, карантин, realtime guard, служба LocalSystem.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages