
DigiExam एक निगरानी परीक्षा और प्रॉक्टरिंग (निगरानी) सॉफ्टवेयर है। यह सॉफ्टवेयर स्कूलों (या छात्रों) के कंप्यूटरों पर स्थापित किया जाता है। जब छात्र किसी परीक्षा में शामिल होता है, तो DigiExam निम्न सुनिश्चित करेगा: कि यह वर्चुअल मशीन में नहीं चल रहा है, सभी एप्लिकेशन समाप्त कर देगा, स्वयं को फुलस्क्रीन कर लेगा, और उपयोगकर्ता को DigiExam विंडो के अलावा कहीं और जाने से रोकेगा।
यह पाया गया है कि सुरक्षा जाँचें कमजोर हैं और फ़ाइल सिस्टम में एक फ़ाइल (जो उपयोगकर्ता के स्वामित्व वाली है) को प्रतिस्थापित करके आसानी से बायपास किया जा सकता है। यह DigiExam v14.0.2 में कार्य करता हुआ पुष्टि किया गया है और उसके बाद दोबारा परीक्षण नहीं किया गया (मैं अपनी परीक्षा में उत्तीर्ण हो गया :)।
भेद्यता: DigiExam (एक इलेक्ट्रॉन ऐप्लिकेशन) वर्चुअल मशीन का पता लगाने (अधिकांश सुरक्षा सुविधाओं के साथ) का कार्य dx-sec नामक एक नेटिव मॉड्यूल को "आउटसोर्स" करता है। dx-sec मॉड्यूल पर इंटीग्रिटी चेक (अखंडता जाँच) की कमी पैच किए गए संस्करण द्वारा मॉड्यूल को प्रतिस्थापित करने की अनुमति देती है। यह पैच मूल रूप से dx-sec के भीतर स्थित किसी भी सुविधा को संशोधित कर सकता है, जिसमें वर्चुअल मशीन का पता लगाना (और अन्य, जैसे अवैध प्रक्रियाओं की व्हाइटलिस्ट, आदि) शामिल है।
अपनी पहली लॉन्चिंग पर, DigiExam ऐप्लिकेशन %localappdata%\DigiExam\app-14.0.2\resources\app.asar.unpacked\node_modules\%modulename%\build\Release\%modulename.node% में नेटिव मॉड्यूल डाउनलोड करता है। ये .node फ़ाइलें (जैसा कि file द्वारा निर्देशित हैं) PE32 executable (DLL) (GUI) Intel 80386, for MS Windows हैं।
Ghidra में dx-sec फ़ाइल खोलने और स्ट्रिंग "Virtual Machine" की खोज करने पर बहुत सारे परिणाम मिलते हैं और FUN_10020370 तक पहुँचते हैं - जिसे detect_virtual_machine नाम दिया गया (जो VM का पता लगाने के लिए क्या जाँचा जा रहा है, इस पर काफी दिलचस्प अंतर्दृष्टि देता है)।

detect_virtual_machine का FUN_10007ab0 पर एक xref (क्रॉस-रेफरेंस) है - जिसे detect_virtual_machine_node_handler नाम दिया गया - जो नोड सामग्री के लिए लाइब्रेरी का entrypoint प्रतीत होता है (हमारे 'मुख्य' फ़ंक्शन detect_virtual_machine के आसपास constructor और destructor)।

detect_virtual_machine को तुरंत लौटने के लिए पैच किया जा सकता है। स्क्रीनशॉट का दाहिना भाग पैच किया हुआ संस्करण है।

यह VM डिटेक्शन लॉजिक को पूरी तरह से बायपास कर देगा।
जैसा कि परिचय में उल्लेख किया गया है, DigiExam अक्सर साझा स्कूल कंप्यूटरों पर स्थापित किया जाता है। VM डिटेक्शन लॉजिक को पैच करने के बजाय, एक हमलावर इसका उपयोग जैसे ही कोई छात्र परीक्षा देता है, किसी भी छात्र के सत्र पर कोड निष्पादन (code execution) प्राप्त करने के लिए कर सकता है, जिससे छात्रों के दस्तावेजों और सूचनाओं पर अधिक विनाशकारी हमले हो सकते हैं। स्थिरता (Persistence) तब तक बनी रहती है जब तक DigiExam अपडेट नहीं होता।