WinDiff — скилл
Скилл сравнивает две сборки Windows по символам, типам и сисколам и пишет отчет для EDR, античитов и поиска уязвимостей
- 397 ★ репозитория
- Последний коммит
- GPL-3.0
Расширенный доступ
Почему такой уровень
- Агент запускает `cargo run` и Python-скрипты из клона репозитория
- При генерации скачиваются PE-файлы и PDB из Winbindex и Microsoft; нужны место на диске и сетевой доступ
- Базы и отчеты пишутся в каталог `local` внутри клона
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add skills/windiffОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Агент запускает `cargo run` и Python-скрипты из клона репозитория
- При генерации скачиваются PE-файлы и PDB из Winbindex и Microsoft; нужны место на диске и сетевой доступ
- Базы и отчеты пишутся в каталог `local` внутри клона
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
WinDiff собирает базы символов, типов и системных вызовов бинарников Windows и сравнивает их между версиями ОС. Проект состоит из CLI на Rust, который строит сжатые JSON-базы, и веб-интерфейса на Next.js. Скилл `windiff-version-diff-analysis` лежит в том же репозитории и ведет весь процесс за агента. Вы называете две версии Windows в формате «версия, обновление, архитектура», например `21H2 BASE amd64`, и список бинарников. Скилл собирает минимальный конфиг, запускает `windiff_cli`, который скачивает PE-файлы из Winbindex и PDB с сервера символов Microsoft, и считает разницу скриптом `windiff_diff.py`. Скрипт сводит изменения в безымянных битовых полях к родительской структуре, поэтому новые флаги митигаций вроде `_EPROCESS::MitigationFlags2Values` не теряются в шуме. Затем агент объясняет результат по знаниям о внутреннем устройстве Windows и пишет отчет для трех групп читателей: разработчиков антивирусов и EDR, разработчиков античитов и исследователей уязвимостей. В отчет попадают новые сисколы, флаги митигаций, ETW-телеметрия и колбэки ядра, изменения проверки целостности кода и новые компоненты.
Для кого. Для исследователей безопасности Windows, разработчиков EDR и античитов, которым нужно быстро понять, что Microsoft изменила в ядре и системных библиотеках между сборками.
Подходит, если
- Нужно сравнить `ntoskrnl.exe` между 21H2 и 24H2 и узнать, что в нем появилось
- Вы ищете новые сисколы или флаги митигаций процессов в очередном обновлении Windows
- Нужно понять, что изменилось в `win32k.sys` или `ci.dll` и как это влияет на EDR или античит
- Вам нужен markdown-отчет, где каждая находка снабжена объяснением, зачем она нужна и кому важна
- Базы уже собраны в `windiff_frontend/public`, и разницу по одному бинарнику надо посчитать скриптом без агента
Не подходит, если
- Нужен разбор тела функций: WinDiff сравнивает символы, типы и сисколы, дизассемблирование остается за вами
- Нужная сборка Windows отсутствует в Winbindex или у ее файлов нет прямых ссылок для скачивания
- Нужно собрать новые базы без сети: загрузке PE и PDB нужен доступ к внешним сервисам; готовые базы можно сравнивать локально
- Цель не Windows: инструмент работает только с PE и PDB от Microsoft
Пример запроса к агенту
Сравни `ntoskrnl.exe` между 25H2 и 26H1, расскажи, что нового, и запиши отчет в markdown-файлОграничения
Для генерации баз нужны Rust 1.85 или новее и доступ к Winbindex и серверу символов Microsoft, а скрипту сравнения нужен Python 3. Node.js 20.9 требуется только для веб-интерфейса. Клонирование репозитория само по себе не устанавливает CLI и не скачивает базы нужных сборок.
Веб-сайт проекта хранит только недавние KB и Insider Preview, старые версии можно собрать самостоятельно. Сравнивайте одинаковые архитектуры и отличайте базовую сборку от накопительного обновления.
Скрипт показывает изменения символов и типов, а объяснение пишет агент. Новое поле не доказывает изменение поведения программы или наличие уязвимости, так что отчет нужно проверять по другим источникам. Лицензия GPL-3.0.
Как отключить. Скилл подхватывается, когда репозиторий открыт в Claude Code или Codex, через алиасы в `.claude/skills` и `.agents/skills`. Откройте другую папку или удалите клон: собранные базы лежат в каталоге `local` внутри него и уйдут вместе с ним.
Частые вопросы
Как поставить скилл WinDiff в Claude Code?
Склонируйте репозиторий `ergrelet/windiff` и откройте его в Claude Code или Codex. Канонический скилл лежит в `skills/windiff-version-diff-analysis`, а алиасы в `.claude/skills` и `.agents/skills` делают его видимым обоим агентам без копий.
Какие версии Windows можно сравнивать?
Версия задается тройкой: версия ОС, обновление и архитектура, например `21H2`, `BASE`, `amd64` или `11-24H2`, `KB5074105`, `amd64`. `BASE` означает исходный образ, `KB` с номером — накопительное обновление. Допустимые написания перечислены в `ci/db_configuration.json`.
Можно ли посчитать разницу без агента?
Да. Скрипт `windiff_diff.py` не требует сторонних зависимостей: с флагом `--list` он показывает доступные версии и бинарники в каталоге баз, а с именем бинарника и двумя суффиксами печатает сводку в `stderr` и JSON в `stdout`.
Почему для некоторых бинарников нет данных?
Winbindex дает прямую ссылку на скачивание не для всех проиндексированных файлов. Когда файл появляется на VirusTotal, ссылка становится доступной, и WinDiff подхватывает его автоматически.
Какие бинарники сравнивать, если не знаете, с чего начать?
Скилл по умолчанию берет ядро безопасности: `ntoskrnl.exe`, `ntdll.dll`, `win32k.sys`, `win32kbase.sys`, `win32kfull.sys`, `ci.dll` и `cng.sys`. Справка в `references/windows-components.md` описывает, за что отвечает каждый из них.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
СкиллыСканер каталогов со скиллами: правила находят явное, ИИ-аналитик в изолированной файловой системе ловит замаскированные цепочки.
Скилл ищет в проектах и образах контейнеров копии декодера Brotli с уязвимостью CVE-2026-111497 и подсказывает, что обновить.
Сканер безопасности для скиллов и MCP агентов: ищет промпт-инъекции, утечки данных и риски цепочки поставок до установки
122 скилла для обратной разработки: вредоносные программы, прошивки, протоколы, мобильные приложения, CTF и поиск уязвимостей.
REx@Skill
REx-skill
Скилл Claude Code ищет дефекты в скомпилированных бинарниках и доказывает находки: семь субагентов и закрепленные инструменты.
Плагин с 88 скиллами по безопасности Microsoft: Defender, Sentinel, Entra, Purview и Intune для Copilot, Claude Code и Cursor.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| WinDiff (эта карточка) | нет | 397 | ||
| GhidraMCP | нет | не нужна | 11 907 | агент декомпилирует и размечает один бинарник в Ghidra, версии Windows между собой не сравнивает |
| ida-mcp-rs | нет | не нужна | 904 | IDA Pro без интерфейса для разбора одного файла, без базы символов по версиям ОС |
Коротко о README
Сравнение можно использовать отдельно от веб-сайта: Python-скрипт печатает JSON в `stdout`, а краткую сводку в `stderr`. Это позволяет сохранить структурированный результат и затем передать его агенту для разбора.
Бейдж для README
Исходный SKILL.md
--- name: windiff-version-diff-analysis description: >- Generate and interpret security-research diffs between Windows versions or patch levels using this repo's WinDiff CLI and databases. Use when comparing Windows builds or binaries such as ntoskrnl.exe, ntdll.dll, win32k*.sys, ci.dll, or cng.sys to find changed syscalls, symbols, types, mitigation flags, callbacks, ETW/EtwTi telemetry, code-integrity behavior, drivers, or attack surface. Explain likely intent and security relevance with Windows-internals knowledge, and frame findings for anti-malware/EDR, anti-cheat, and vulnerability-research audiences rather than returning an uninterpreted symbol list. --- # WinDiff Version Diff Analysis Compare two Windows builds and turn the raw symbol/type/syscall delta into a security-research report: what was added, what it probably *does*, and why it matters for attack surface, exploitation, or defense. Run this skill from a **WinDiff** repository checkout. It uses `windiff_cli` to generate the per-binary JSON databases, then diffs and interprets them. The interpretation is the point: explain intent from Windows internals conventions instead of merely listing symbols. ## Locate bundled resources Resolve all `scripts/` and `references/` paths relative to this `SKILL.md`, not relative to the current working directory and not through a harness-specific directory such as `.claude/` or `.agents/`. Before running a bundled script, set `SKILL_DIR` to the absolute directory containing this file. The examples below assume that has been done: ```bash SKILL_DIR="<absolute directory containing this SKILL.md>" ``` If separate shell-tool calls do not share environment, substitute that absolute path for `$SKILL_DIR` in each command instead of relying on prior shell state. Also identify the repository root (the directory containing `windiff_cli/`, `windiff_frontend/`, and `ci/`) and run repository commands from there. Keep generated configs, databases, and analysis artifacts under its git-ignored `local/` directory. ## Workflow ### 1. Pin down scope Establish, asking the user only if genuinely ambiguous: