ergrelet/windiff
Tool that allows comparing symbol, type and syscall information of Microsoft Windows binaries across different versions of the OS, using a Web UI and/or LLMs.
What it solves
WinDiff provides a way to track and compare changes in Microsoft Windows binaries across different OS versions. It simplifies the process of identifying new symbols, types, and syscalls that appear in Windows updates, which is otherwise a manual and tedious process for security researchers.
How it works
The project consists of a CLI tool written in Rust that downloads PE and PDB files via Winbindex and reconstructs types using resym to create compressed JSON databases. A Next.js web frontend then visualizes this data, allowing users to browse and compare binaries. Additionally, a Python-based diff helper script can be used to generate structured JSON reports of changes between versions.
Who it’s for
This tool is primarily designed for vulnerability researchers, anti-malware/EDR developers, and anti-cheat developers who need to understand internal Windows changes to maintain compatibility or find new attack vectors.
Highlights
- Automated Updates: Uses GitHub Actions to fetch the latest Windows updates and Insider Previews daily.
- Agent-Ready: Includes an "Agent Skill" that allows AI assistants like Claude Code or Codex to automate the analysis of binary diffs and interpret the results.
- Detailed Analysis: Tracks changes in exports, symbols, modules, syscalls, and complex type/bitfield changes.
- Web-Based Visualization: Provides a user-friendly interface for browsing binary information across versions.
Related
- Project
- Project
- Project
- Project
- Project