Windiff adalah alat berbasis web open-source yang memungkinkan menjelajah dan membandingkan informasi simbol, jenis dan syscall dari biner Microsoft Windows di berbagai versi sistem operasi. Database biner secara otomatis diperbarui untuk memasukkan informasi dari pembaruan Windows terbaru (termasuk pratinjau orang dalam).
Itu terinspirasi oleh NTDIFF dan dimungkinkan dengan bantuan WinBindex.

Windiff terbuat dari dua bagian: alat CLI yang ditulis dalam karat dan frontend web yang ditulis dalam TypeScript menggunakan kerangka kerja berikutnya.js.
Alat CLI digunakan untuk menghasilkan database JSON terkompresi dari file konfigurasi dan bergantung pada Winbindex untuk menemukan dan mengunduh PES yang diperlukan (dan PDB). Jenis direkonstruksi menggunakan resym . Gagasan di balik alat CLI adalah untuk dapat dengan mudah memperbarui dan meregenerasi database karena versi baru Windows dirilis. Kode alat CLI ada di direktori windiff_cli .
Frontend digunakan untuk memvisualisasikan data yang dihasilkan oleh alat CLI, dengan cara yang ramah pengguna. Frontend mengikuti prinsip yang sama dengan ntdiff , karena memungkinkan informasi menjelajah yang diekstraksi dari PES dan PDB Microsoft resmi untuk versi tertentu dari Microsoft Windows dan juga memungkinkan membandingkan informasi ini antar versi. Kode frontend ada di direktori windiff_frontend .
Tindakan GitHub yang dijadwalkan mengambil pembaruan baru dari Winbindex setiap hari dan memperbarui file konfigurasi yang digunakan untuk menghasilkan versi langsung Windiff. Saat ini, karena batasan (rencana gratis) dan batasan komputasi, hanya pembaruan pratinjau KB dan orang dalam yang kurang dari satu tahun yang disimpan untuk versi langsung. Anda tentu saja dapat membangun kembali versi lokal Windiff sendiri, tanpa batasan itu jika perlu. Lihat bagian selanjutnya untuk itu.
Catatan: Winbindex tidak menyediakan tautan unduhan unik untuk 100% file yang diindeks, sehingga mungkin terjadi bahwa beberapa informasi PE tidak tersedia di Windiff karena itu. Namun, segera setelah PE ini berada di Virustotal, Winbindex akan dapat memberikan tautan unduhan yang unik untuk mereka dan kemudian akan diintegrasikan ke dalam Windiff secara otomatis.
Build penuh Windiff "didokumentasikan sendiri" dalam ci/build_frontend.sh , yang merupakan skrip build yang digunakan untuk membangun versi langsung Windiff. Inilah yang ada di dalamnya:
# 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 File konfigurasi yang digunakan untuk menghasilkan data untuk versi langsung Windiff terletak di sini: ci/db_configuration.json , tetapi Anda dapat menyesuaikannya atau menggunakan sendiri. PRS yang bertujuan menambahkan binari baru untuk dilacak dalam konfigurasi langsung dipersilakan.