Windiff ist ein webbasiertes Open-Source-Tool, mit dem das Surfen und Vergleich von Symbol-, Typ- und Syskallinformationen von Microsoft-Windows-Binärdateien über verschiedene Versionen des Betriebssystems hinweg ermöglicht werden kann. Die binäre Datenbank wird automatisch aktualisiert, um Informationen aus den neuesten Windows -Updates (einschließlich Insider -Vorschau) zu berücksichtigen.
Es wurde von NTDIFF inspiriert und mit Hilfe von Winbindex ermöglicht.

Windiff besteht aus zwei Teilen: einem CLI -Tool in Rost und einem Web -Frontend, das mit dem nächsten.js -Framework in TypeScript geschrieben wurde.
Das CLI -Tool wird verwendet, um komprimierte JSON -Datenbanken aus einer Konfigurationsdatei zu generieren und sich auf Winbindex zu stützen, um die erforderlichen PES (und PDBs) zu finden und herunterzuladen. Die Typen werden unter Verwendung von resym rekonstruiert. Die Idee hinter dem CLI -Tool besteht darin, Datenbanken einfach zu aktualisieren und zu regenerieren, wenn neue Windows -Versionen veröffentlicht werden. Der Code des CLI -Tools befindet sich im Verzeichnis windiff_cli .
Mit dem Frontend wird die vom CLI-Tool genannten Daten auf benutzerfreundliche Weise verwendet. Das Frontend folgt dem gleichen Prinzip wie ntdiff , da das Browserinformationen aus offiziellen Microsoft PES und PDBS für bestimmte Versionen von Microsoft Windows extrahiert werden und diese Informationen zwischen den Versionen verglichen werden können. Der Frontend -Code befindet sich im Verzeichnis windiff_frontend .
Eine geplante GitHub -Aktion erfasst jeden Tag neue Updates von Winbindex und aktualisiert die Konfigurationsdatei, mit der die Live -Version von Windiff generiert wird. Derzeit werden aufgrund von (kostenlosen Plänen) Speicher- und Berechnenbeschränkungen nur KB- und Insider -Vorschau -Updates für die Live -Version aufbewahrt . Sie können natürlich eine lokale Version von Windiff selbst wieder aufbauen, ohne diese Einschränkungen, wenn Sie es brauchen. Siehe den nächsten Abschnitt dafür.
Hinweis: Winbindex bietet keine eindeutigen Download -Links für 100% der indizierten Dateien. Daher kann es geschehen, dass einige PES -Informationen in Windiff nicht verfügbar sind. Sobald diese PEs auf Virustotal sind, kann Winbindex ihnen einzigartige Download -Links für sie bereitstellen und werden dann automatisch in Windiff integriert.
Der vollständige Aufbau von Windiff ist in ci/build_frontend.sh "selbst dokumentiert", das das Build-Skript ist, das zum Erstellen der Live-Version von Windiff verwendet wird. Hier ist, was drin ist:
# Resolve the project's root folder
PROJECT_ROOT= $( git rev-parse --show-toplevel )
# Generate databases
cd " $PROJECT_ROOT /windiff_cli "
cargo run --release " $PROJECT_ROOT /ci/db_configuration.json " " $PROJECT_ROOT /windiff_frontend/public/ "
# Build the frontend
cd " $PROJECT_ROOT /windiff_frontend "
npm ci
npm run build Die Konfigurationsdatei, mit der die Daten für die Live -Version von Windiff generiert werden, befindet sich hier: ci/db_configuration.json , können sie jedoch anpassen oder Ihre eigenen verwenden. PRs, die darauf abzielen, neue Binärdateien hinzuzufügen, die in der Live -Konfiguration verfolgt werden, sind willkommen.