पृष्ठभूमि
ऑपरेटिंग सिस्टम में एक घटक होता है जिसे कर्नेल के रूप में जाना जाता है। कर्नेल की (कई) जिम्मेदारियों में से एक सिस्टम मेमोरी (भौतिक और आभासी दोनों) का प्रबंधन करना है।
ऐसा करने के भाग के रूप में, कर्नेल उपलब्ध मेमोरी को उपयोगकर्ता मोड और कर्नेल मोड के रूप में ज्ञात दो अलग-अलग क्षेत्रों में विभाजित करता है। कर्नेल और ड्राइवर कर्नेल मोड मेमोरी साझा करते हैं, और उपयोगकर्ता प्रोग्राम और कम महत्वपूर्ण सिस्टम घटक उपयोगकर्ता मोड मेमोरी क्षेत्र में रहते हैं।
उपयोगकर्ता मोड में प्रक्रियाएं विशेष रूप से नामित और नियंत्रित चैनलों को छोड़कर, आमतौर पर कर्नेल मोड में उन लोगों के साथ संवाद नहीं कर सकती हैं।
पूर्णता के लिए यह उल्लेख किया जाना चाहिए कि उपयोगकर्ता मोड में चलने वाली प्रक्रियाएं भी एक-दूसरे से अलग-थलग हैं, लेकिन ऑपरेटिंग सिस्टम द्वारा प्रदान की गई सुविधाओं का उपयोग करके एक-दूसरे के साथ अधिक स्वतंत्र रूप से संवाद कर सकती हैं बशर्ते कि कार्यक्रम ऐसा करने के लिए डिज़ाइन किए गए हों।
प्रक्रियाओं
कर्नेल उपयोगकर्ता मोड में प्रक्रियाओं को लॉन्च करने की क्षमता प्रदान करता है। जब एक प्रक्रिया बनाई जाती है, तो यह उन प्रक्रियाओं की आंतरिक सूची में जोड़ा जाता है जो वर्तमान में मौजूद हैं। जब टास्क मैनेजर जैसे कोई प्रोग्राम प्रक्रियाओं की एक सूची के लिए पूछता है, तो उसे इस सूची में सूचनाओं का एक सबसेट प्राप्त होता है, जिसे उपयोगकर्ता की अनुमति के अनुसार फ़िल्टर किया जाता है।
अपने अस्तित्व को छिपाने के लिए एक रूटकिट जैसे मैलवेयर का मतलब है कि इस तालिका से सीधे खुद को हटाना। ऐसा करने के बाद भी यह निष्पादित हो सकता है, लेकिन अब सामान्य साधनों द्वारा प्राप्त प्रक्रिया सूची में दिखाई नहीं देगा।
चूंकि ये प्रक्रियाएं वास्तव में मौजूद हैं और निष्पादित होती हैं, उन्हें अन्य कर्नेल डेटा संरचनाओं के निरीक्षण से पाया जा सकता है, जैसे कि हैंडल टेबल, जो संसाधनों के बारे में जानकारी रखते हैं, जो एक प्रक्रिया खुली है (उदाहरण के लिए फ़ाइलें), या स्मृति आवंटन की जांच करना जिसमें से यह अधिक है सॉफ्टवेयर के कार्य करने की क्षमता में बाधा डाले बिना छिपाना मुश्किल है।
कर्नेल मोड ड्राइवर
कर्नेल मोड ड्राइवर भौतिक हार्डवेयर उपकरणों के साथ सहभागिता सहित कई चीजों के लिए उपयोग किया जाता है। वे आवश्यक रूप से कर्नेल के नियंत्रण में निष्पादित करते हैं, लेकिन चूंकि वे उपयोगकर्ता-मोड प्रक्रिया नहीं हैं, इसलिए वे प्रक्रियाओं की तालिका में प्रकट नहीं होते हैं। और इसलिए टास्क मैनेजर, या अन्य उपकरणों में विशेष रूप से प्रक्रियाओं से संबंधित नहीं दिखाई देगा।
कर्नेल मोड में कोड चलाने में सक्षम होना एक महत्वपूर्ण कदम है जो प्रभावी रूप से कोड निष्पादित करने के अस्तित्व को छिपाने में सक्षम है। सामान्य परिस्थितियों में विंडोज को चलाने के लिए कोड कर्नेल मोड में कोड की आवश्यकता होती है, इसलिए मालवेयर को ऑपरेटिंग सिस्टम, अन्य सॉफ्टवेयर, या यहां तक कि सोशल इंजीनियरिंग के शोषण का उपयोग करने की आवश्यकता हो सकती है, लेकिन एक बार कोड कर्नेल मोड में काम कर रहा है, छुपा रहा है आसान हो जाता है।
सारांश
सारांश में, प्रक्रियाओं के अस्तित्व के साक्ष्य को छिपाना संभव है, संभावना है कि हमेशा कुछ संकेत हो सकते हैं जो प्रक्रिया मौजूद है, क्योंकि यह आमतौर पर संसाधन के कुछ रूप का उपयोग करने की आवश्यकता होती है, जो कुछ भी करने के लिए डिज़ाइन किया गया था, कितना मुश्किल है यह पता लगाना विशिष्ट मैलवेयर पर निर्भर करता है।