
एक उपकरण जो Microsoft Windows बाइनरीज़ के सिंबल, प्रकार और syscall जानकारी की तुलना ऑपरेटिंग सिस्टम के विभिन्न संस्करणों में Web UI और/या LLMs का उपयोग करके करने की अनुमति देता है।
WinDiff एक ओपन-सोर्स वेब-आधारित उपकरण है जो Microsoft Windows बाइनरी के प्रतीक, प्रकार और syscall जानकारी को ऑपरेटिंग सिस्टम के विभिन्न संस्करणों में ब्राउज़ और तुलना करने की अनुमति देता है। बाइनरी डेटाबेस स्वचालित रूप से नवीनतम Windows अपडेट (Insider Preview सहित) से जानकारी शामिल करने के लिए अपडेट किया जाता है।
यह ntdiff से प्रेरित था और Winbindex की सहायता से संभव हुआ।
WinDiff दो भागों से बना है: Rust में लिखा गया एक CLI उपकरण और Next.js फ्रेमवर्क का उपयोग करते हुए TypeScript में लिखा गया एक वेब फ्रंटएंड।
CLI उपकरण का उपयोग एक कॉन्फ़िगरेशन फ़ाइल से संपीड़ित JSON डेटाबेस उत्पन्न करने के लिए किया जाता है और आवश्यक PEs (और PDBs) को खोजने और डाउनलोड करने के लिए Winbindex पर निर्भर करता है। resym का उपयोग करके प्रकारों का पुनर्निर्माण किया जाता है। CLI उपकरण के पीछे का विचार यह है कि Windows के नए संस्करण जारी होने पर डेटाबेस को आसानी से अपडेट और पुनर्जीवित किया जा सके। CLI उपकरण का कोड windiff_cli निर्देशिका में है।
फ्रंटएंड का उपयोग CLI उपकरण द्वारा उत्पन्न डेटा को उपयोगकर्ता-अनुकूल तरीके से देखने के लिए किया जाता है। फ्रंटएंड ntdiff के समान सिद्धांत का पालन करता है, क्योंकि यह Microsoft Windows के कुछ संस्करणों के लिए आधिकारिक Microsoft PEs और PDBs से निकाली गई जानकारी को ब्राउज़ करने की अनुमति देता है और संस्करणों के बीच इस जानकारी की तुलना करने की भी अनुमति देता है। फ्रंटएंड का कोड windiff_frontend निर्देशिका में है।
एक निर्धारित GitHub क्रिया प्रतिदिन Winbindex से नए अपडेट लाती है और WinDiff के लाइव संस्करण को उत्पन्न करने के लिए उपयोग किए जाने वाले कॉन्फ़िगरेशन फ़ाइल को अपडेट करती है। वर्तमान में, (मुफ्त योजनाओं) भंडारण और कंप्यूट सीमाओं के कारण, लाइव संस्करण के लिए केवल एक वर्ष से कम पुराने KB और Insider Preview अपडेट रखे जाते हैं। यदि आपको आवश्यकता हो तो आप निश्चित रूप से उन सीमाओं के बिना WinDiff का स्थानीय संस्करण स्वयं बना सकते हैं। इसके लिए अगला भाग देखें।
नोट: Winbindex अनुक्रमित फ़ाइलों के 100% के लिए अद्वितीय डाउनलोड लिंक प्रदान नहीं करता है, इसलिए ऐसा हो सकता है कि कुछ PEs की जानकारी WinDiff में उपलब्ध न हो। हालांकि, जैसे ही ये PEs VirusTotal पर होंगे, Winbindex उनके लिए अद्वितीय डाउनलोड लिंक प्रदान करने में सक्षम होगा और फिर वे स्वचालित रूप से WinDiff में एकीकृत हो जाएंगे।
WinDiff का पूर्ण निर्माण ci/build_frontend.sh में "स्व-दस्तावेजीकृत" है, जो 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, लेकिन आप इसे अनुकूलित कर सकते हैं या अपना स्वयं का उपयोग कर सकते हैं। लाइव कॉन्फ़िगरेशन में ट्रैक करने के लिए नई बाइनरी जोड़ने के उद्देश्य से PR का स्वागत है।
रिपॉजिटरी में एक एजेंट स्किल शामिल है जो WinDiff को एक स्वचालित सुरक्षा-अनुसंधान सहायक में बदल देता है। स्वयं डिफ UI पर क्लिक करने के बजाय, आप Claude Code से दो Windows संस्करणों की तुलना करने और यह बताने के लिए कह सकते हैं कि क्या बदला — और यह क्यों मायने रखता है।
स्किल .claude/skills/windiff-version-diff-analysis/ में रहता है। जब आप इस रिपो को Claude Code में खोलते हैं, तो यह स्वचालित रूप से लोड होता है और निम्नलिखित जैसे अनुरोधों पर ट्रिगर होता है:
ntoskrnl.exe का 21H2 और 24H2 के बीच अंतर बताएं और मुझे बताएं कि क्या नया है।win32k.sys / ci.dll में क्या बदला?दो संस्करणों को देखते हुए, स्किल windiff_cli को डेटाबेस उत्पन्न करने, उनमें अंतर करने और एक रिपोर्ट तैयार करने के लिए चलाता है जो विंडोज-आंतरिक ज्ञान (API उपसर्ग, घटक भूमिकाएं) का उपयोग करके कच्चे प्रतीक/प्रकार/syscall डेल्टा की व्याख्या करता है, जो तीन दर्शकों के लिए तैयार की गई है: एंटी-मैलवेयर/EDR डेवलपर्स, एंटी-चीट डेवलपर्स, और भेद्यता शोधकर्ता। यह नए syscalls, नए शमन फ्लैग (जिसमें अज्ञात बिटफील्ड स्ट्रक्ट्स के अंदर छिपे बिट्स शामिल हैं, जो उनके मूल जैसे _EPROCESS::MitigationFlags2Values से जुड़े हुए हैं), नई ETW/खतरा-खुफिया टेलीमेट्री और कर्नेल कॉलबैक, कोड-अखंडता परिवर्तन, और बिल्कुल नए घटकों को उजागर करता है।
यहाँ Claude Opus 4.7 द्वारा उत्पन्न एक रिपोर्ट है, "ntoskrnl.exe का 25H2 और 26H1 के बीच अंतर बताएं और मुझे बताएं कि क्या नया है। अपनी रिपोर्ट एक मार्कडाउन फ़ाइल में लिखें।" प्रॉम्प्ट के लिए: ntoskrnl_25H2_to_26H1.md
स्किल का मुख्य डिफ तर्क एक स्टैंडअलोन Python स्क्रिप्ट है जिसमें कोई निर्भरता नहीं है, जो windiff_cli द्वारा उत्पादित किसी भी डेटाबेस के खिलाफ अपने आप उपयोग योग्य है:
# List the OS versions / binaries available in a database directory
python3 .claude/skills/windiff-version-diff-analysis/scripts/windiff_diff.py \
windiff_frontend/public --list
# Diff one binary between two OS versions ("version_update_architecture" suffixes)
python3 .claude/skills/windiff-version-diff-analysis/scripts/windiff_diff.py \
windiff_frontend/public ntoskrnl.exe 21H2_BASE_amd64 22H2_BASE_amd64
यह stderr पर मानव-पठनीय सारांश और stdout पर संरचित JSON (जोड़े/हटाए गए एक्सपोर्ट, प्रतीक, मॉड्यूल, syscalls, और हल किए गए प्रकार/बिटफील्ड परिवर्तन) प्रिंट करता है। पूर्ण वर्कफ़्लो और संदर्भ सामग्री के लिए स्किल का SKILL.md देखें।