
Windows x64 अनुसंधान हाइपरवाइज़र जो Intel VT-x और प्रति-CPU EPT हुक्स का उपयोग करके Nt/Ex/Mm रूटीन्स को इंटरसेप्ट करता है, अनुरोध नीतियाँ लागू करता है, और लाइव कर्नेल टेलीमेट्री स्ट्रीम करता है।
C और x64 असेंबली में Intel VT-x वर्चुअलाइज़ेशन, EPT हुकिंग और इंटरैक्टिव कर्नेल टेलीमेट्री।
Velum एक चल रहे Windows कर्नेल को VMX non-root ऑपरेशन में लाता है और शोधकर्ताओं को नेटिव कॉल्स को देखने, कर्नेल गतिविधि का निरीक्षण करने और अनुरोध नीतियाँ लागू करने का इंटरैक्टिव तरीका प्रदान करता है। इसके EPT हुक्स हार्डवेयर में मूल निर्देशों को पुनः चलाते हैं, जबकि गेस्ट हेल्पर्स मेटाडेटा कैप्चर करते हैं और एक विलंबित वर्कर कंसोल या DebugView को पठनीय इवेंट्स पहुँचाता है।
इसका उपयोग किसी फ़ाइल ऑपरेशन को इनपुट आर्ग्युमेंट्स से लेकर नीति निर्णय तक ट्रैक करने, किसी अनुमत अनुरोध की तुलना किसी अस्वीकृत अनुरोध से करने, या हाइपरवाइज़र को पुनः आरंभ किए बिना प्रोसेसर पहचान और टाइमिंग सेटिंग्स का पता लगाने के लिए करें। कार्यान्वयन में प्रति-CPU स्टार्टअप और शटडाउन, CET स्टेट ट्रांसफर, इवेंट पुनःइंजेक्शन और ट्रांसलेशन-कैश प्रबंधन शामिल हैं।
शुरू करें | उपयोग गाइड | तकनीकी लेख | रनटाइम कैप्चर | MIT लाइसेंस
| क्षेत्र | आप क्या कर सकते हैं |
|---|---|
| EPT हुक्स | मूल-निर्देश पुनःचालन और MTF पुनर्स्थापन के साथ निर्यातित-प्रविष्टि हुक्स को सक्षम और अक्षम करें |
| नेटिव-कॉल टेलीमेट्री | कॉलर ID, पथ, प्रोसेस मेटाडेटा और डिकोड किए गए इनपुट आर्ग्युमेंट्स का निरीक्षण करें |
| अनुरोध नीतियाँ | कॉलर, पथ और इनपुट-फ़ील्ड मानदंडों का उपयोग करके मेल खाते Nt अनुरोधों को अस्वीकार करें |
| एक्सेस कमी | NtCreateFile, NtOpenFile, NtCreateSection, NtOpenProcess और NtDuplicateObject के लिए स्पष्ट रूप से अनुरोधित अधिकार हटाएँ |
| कर्नेल अवलोकन | पूल आवंटन/मुक्ति, मेमोरी मैपिंग और कॉपी इनपुट्स का अनुसरण करें; मॉड्यूल/टैग सारांशों का निरीक्षण करें |
| लॉगिंग | लाइव-कंसोल या DebugView आउटपुट चुनें और प्रति-लक्ष्य फ़िल्टर कॉन्फ़िगर करें |
| CPUID | पहचान नियम लागू करें और क्वेरी करें, फिर डिफ़ॉल्ट पुनर्स्थापित करें |
| TSC | डेडलाइन ट्रांसलेशन के साथ एक निश्चित साइन्ड ऑफ़सेट लागू करें और शून्य पर रीसेट करें |
| जीवनचक्र | प्रत्येक भाग लेने वाले CPU की जाँच करें और शटडाउन प्रवाह के माध्यम से Windows को नेटिव निष्पादन में लौटाएँ |
लक्ष्य कैटलॉग में 12 Nt रूटीन और 12 Ex/Mm रूटीन हैं। कंसोल चल रहे कर्नेल पर उपलब्ध एक्सपोर्ट्स और साझा प्रविष्टि पतों को हल करता है। प्रत्येक लक्ष्य के फ़ील्ड और समर्थित क्रियाओं के लिए लक्ष्य सूचकांक देखें।
रनटाइम स्पष्ट स्टेट स्वामित्व और एक छोटे VM-exit पथ के आसपास अनुकूलित है। लगभग 1,000-पंक्ति का x64 असेंबली लेयर रजिस्टर संरक्षण, VMX ट्रांज़िशन, CET स्टेट ट्रांसफर और नेटिव रिटर्न को संभालता है। प्रति-CPU संरचनाएँ और पूर्व-आवंटित EPT रिज़र्व आवंटन को exit पथ से बाहर रखते हैं; इवेंट फ़ॉर्मेटिंग एक विलंबित PASSIVE-स्तरीय वर्कर में चलती है। रिलीज़ बिल्ड कंपाइलर ऑप्टिमाइज़ेशन का उपयोग करते हैं, जबकि चयनात्मक इंटरसेप्शन सामान्य ऑपरेशनों को अनावश्यक रूप से ट्रैप करने से बचता है।
रूट हैंडलर VMCS और EPT ट्रांज़िशन का प्रबंधन करते हैं। योग्य गेस्ट हेल्पर्स Windows संदर्भ में आर्ग्युमेंट्स कैप्चर करते हैं और नीतियों का मूल्यांकन करते हैं। फ़ॉर्मेटिंग बाद में ड्रेन वर्कर में चलती है। एक अनुमत कॉल एक अस्थायी EPT मैपिंग के अंतर्गत अपना मूल प्रविष्टि निर्देश निष्पादित करता है; MTF शैडो को पुनर्स्थापित करने के लिए नियंत्रण लौटाता है। अस्वीकृत कॉल एक वास्तविक गेस्ट रिटर्न का उपयोग करते हैं ताकि सामान्य स्टैक और CET शैडो स्टैक एक साथ आगे बढ़ें।
गहन व्याख्या के लिए, Velum: preserving Windows execution across VMX transitions पढ़ें। यह लेख स्रोत कोड के माध्यम से VMX स्टार्टअप, VMCS नियंत्रण, EPT हुक्स, CET, NMI/इवेंट हैंडलिंग, टेलीमेट्री और शटडाउन का अनुसरण करता है। इसमें Windows 10 जाँच से WinDbg साक्ष्य शामिल हैं और ExFreePool/ExFreePoolWithTag उपनाम सुधार की व्याख्या करता है। संक्षिप्त इंजीनियरिंग नोट्स उन निर्णयों का सारांश देते हैं।
नीचे दिए गए कैप्चर एक भौतिक Windows 11 बिल्ड 26300.9711 सत्र से हैं, जो 20 लॉजिकल प्रोसेसर वाले Intel i7-12700F पर चलाया गया। इस सत्र में 20/20 CPU डायग्नोस्टिक जाँचें, स्कोप्ड फ़ाइल-राइट अस्वीकृति, एक्सेस में कमी, प्रोसेसर कॉन्फ़िगरेशन और सत्यापित शटडाउन शामिल हैं। पूरी गैलरी और एनिमेशन | सत्र विवरण और हैश।
एक ही कंसोल से हुक सक्षम करें, नीतियाँ कॉन्फ़िगर करें, CPU स्थिति निरीक्षित करें और रनटाइम प्रबंधित करें।

कॉलर, पथ और इनपुट फ़ील्ड सहित एक नियंत्रित छह-बाइट NtWriteFile अनुरोध।

अनुरोधित एक्सेस 0x12019F, मास्क 0x6 हटाने के बाद 0x120199 हो जाता है। ओपन
सफल होता है, और प्रोब पुष्टि करता है कि परिणामी हैंडल लिख नहीं सकता। यह लेबल किया गया
कंपोज़िट मॉनिटर आउटपुट को एप्लिकेशन के परिणाम के साथ जोड़ता है।



Windows x64 के लिए v0.1.0 डाउनलोड करें (ZIP) | रिलीज़ नोट्स और SHA-256 चेकसम
ZIP में velum.sys और velum-console.exe शामिल हैं। ड्राइवर लोड करने से पहले
नीचे दिए गए सेटअप गाइड का पालन करें, या स्रोत से बिल्ड करें:
Visual Studio 2022 या 2026 को C++ x64 टूल्स के साथ, और एक मेल खाते Windows SDK
और WDK के साथ इंस्टॉल करें। build.bat इंस्टॉल किए गए टूल्स का पता लगाता है; VS_PATH, WDK_ROOT
और WDK_VER स्पष्ट चयन की अनुमति देते हैं। किट संगतता और स्थानीय रूप से सत्यापित कॉन्फ़िगरेशन के लिए
बिल्ड आवश्यकताएँ देखें।
build.bat check
build.bat
डिफ़ॉल्ट अनुकूलित Release बिल्ड x64/Release/velum.sys और
x64/Release/velum-console.exe उत्पन्न करता है, बिना किसी PE डीबग निर्देशिका या PDB आउटपुट के।
build.bat diagnostic अलग डायग्नोस्टिक बाइनरीज़ और सिंबल्स के लिए एक स्पष्ट ऑप्ट-इन है।
रनटाइम टेलीमेट्री Release में उपलब्ध रहती है। उत्पन्न आउटपुट Git के बाहर रहता है।