Windiff เป็นเครื่องมือบนเว็บโอเพ่นซอร์สที่อนุญาตให้เรียกดูและเปรียบเทียบสัญลักษณ์ประเภทและข้อมูล SyScall ของ Microsoft Windows Binaries ในระบบปฏิบัติการรุ่นต่างๆ ฐานข้อมูลไบนารีได้รับการปรับปรุงโดยอัตโนมัติเพื่อรวมข้อมูลจากการอัปเดต Windows ล่าสุด (รวมถึง Preview Insider)
มันได้รับแรงบันดาลใจจาก NTDIFF และเป็นไปได้ด้วยความช่วยเหลือของ Winbindex

Windiff ทำจากสองส่วน: เครื่องมือ CLI ที่เขียนในสนิมและส่วนหน้าเว็บที่เขียนด้วยตัวอักษรโดยใช้เฟรมเวิร์ก next.js
เครื่องมือ CLI ใช้ในการสร้างฐานข้อมูล JSON ที่บีบอัดจากไฟล์การกำหนดค่าและอาศัย Winbindex เพื่อค้นหาและดาวน์โหลด PES ที่ต้องการ (และ PDBs) ประเภทจะถูกสร้างขึ้นใหม่โดยใช้ resym แนวคิดที่อยู่เบื้องหลังเครื่องมือ CLI คือการสามารถอัปเดตและสร้างฐานข้อมูลใหม่ได้อย่างง่ายดายเนื่องจาก Windows เวอร์ชันใหม่ถูกปล่อยออกมา รหัสของเครื่องมือ CLI อยู่ในไดเรกทอรี windiff_cli
ส่วนหน้าใช้เพื่อแสดงข้อมูลที่สร้างโดยเครื่องมือ CLI ในวิธีที่ใช้งานง่าย ส่วนหน้าปฏิบัติตามหลักการเดียวกับ ntdiff เนื่องจากอนุญาตให้เรียกดูข้อมูลที่สกัดจาก Microsoft PES และ PDB อย่างเป็นทางการสำหรับ Microsoft Windows รุ่นบางรุ่นและยังช่วยให้เปรียบเทียบข้อมูลระหว่างเวอร์ชันนี้ รหัสส่วนหน้าอยู่ในไดเรกทอรี windiff_frontend
การกระทำของ GitHub ที่กำหนดเวลาจะดึงข้อมูลอัปเดตใหม่จาก Winbindex ทุกวันและอัปเดตไฟล์การกำหนดค่าที่ใช้ในการสร้าง Windiff เวอร์ชันสด ปัจจุบันเนื่องจากการจัดเก็บข้อมูล (แผนฟรี) และข้อ จำกัด การคำนวณมี เพียง KB และ Insider Preview การอัปเดตการอัปเดตที่มีอายุน้อยกว่าหนึ่งปีเท่านั้นที่ถูกเก็บไว้ สำหรับเวอร์ชันสด แน่นอนว่าคุณสามารถสร้าง Windiff ด้วยตัวคุณเองได้โดยไม่มีข้อ จำกัด เหล่านั้นหากคุณต้องการ ดูส่วนถัดไปสำหรับสิ่งนั้น
หมายเหตุ: Winbindex ไม่ได้ให้ลิงก์ดาวน์โหลดที่ไม่ซ้ำกันสำหรับ 100% ของไฟล์ที่จัดทำดัชนีดังนั้นจึงอาจเกิดขึ้นได้ว่าข้อมูลของ PES บางตัวไม่สามารถใช้งานได้ใน Windiff เพราะสิ่งนั้น อย่างไรก็ตามทันทีที่ PEs เหล่านี้อยู่ใน virustotal, Winbindex จะสามารถให้ลิงก์ดาวน์โหลดที่ไม่ซ้ำกันสำหรับพวกเขาและพวกเขาจะถูกรวมเข้ากับ Windiff โดยอัตโนมัติ
การสร้าง Windiff เต็มรูปแบบคือ "เอกสารด้วยตนเอง" ใน ci/build_frontend.sh ซึ่งเป็นสคริปต์การสร้างที่ใช้ในการสร้างเวอร์ชัน Live ของ Windiff นี่คือสิ่งที่อยู่ข้างใน:
# 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 ไฟล์การกำหนดค่าที่ใช้ในการสร้างข้อมูลสำหรับเวอร์ชันสดของ Windiff ตั้งอยู่ที่นี่: ci/db_configuration.json แต่คุณสามารถปรับแต่งหรือใช้งานของคุณเอง PRS มุ่งเป้าไปที่การเพิ่มไบนารีใหม่เพื่อติดตามในการกำหนดค่าสดยินดีต้อนรับ