WinDiff — скилл

Скилл сравнивает две сборки Windows по символам, типам и сисколам и пишет отчет для EDR, античитов и поиска уязвимостей

  • 397 ★ репозитория
  • Последний коммит
  • GPL-3.0
Скилл

Расширенный доступ

Почему такой уровень

  • Агент запускает `cargo run` и Python-скрипты из клона репозитория
  • При генерации скачиваются PE-файлы и PDB из Winbindex и Microsoft; нужны место на диске и сетевой доступ
  • Базы и отчеты пишутся в каталог `local` внутри клона
Все причины и проверки

ergrelet/windiff

Установка

Работает в

В терминале, через 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` описывает, за что отвечает каждый из них.

Обсуждение

Вопросов и отзывов пока нет.

Скиллы

Сканер каталогов со скиллами: правила находят явное, ИИ-аналитик в изолированной файловой системе ловит замаскированные цепочки.

CLIРасширенный доступ50Звезды репозитория

Скилл ищет в проектах и образах контейнеров копии декодера Brotli с уязвимостью CVE-2026-111497 и подсказывает, что обновить.

СкиллРасширенный доступ70Звезды репозитория
Выбор редакции

Сканер безопасности для скиллов и MCP агентов: ищет промпт-инъекции, утечки данных и риски цепочки поставок до установки

CLIРасширенный доступ25,8 тыс.Звезды репозитория

122 скилла для обратной разработки: вредоносные программы, прошивки, протоколы, мобильные приложения, CTF и поиск уязвимостей.

ПлагинШирокий доступ239Звезды репозитория

REx@Skill

REx-skill

Скилл Claude Code ищет дефекты в скомпилированных бинарниках и доказывает находки: семь субагентов и закрепленные инструменты.

СкиллШирокий доступ125Звезды репозитория

Плагин с 88 скиллами по безопасности Microsoft: Defender, Sentinel, Entra, Purview и Intune для Copilot, Claude Code и Cursor.

ПлагинМинимальный доступ180Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
WinDiff (эта карточка)нет397
GhidraMCPнетне нужна11 907агент декомпилирует и размечает один бинарник в Ghidra, версии Windows между собой не сравнивает
ida-mcp-rsнетне нужна904IDA 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:

Сообщить о проблеме