2009-07-16 23 views
5

क्या Windows NT प्लेटफ़ॉर्म (XP-W7) पर कर्नेल-मोड से उपयोगकर्ता-मोड प्रक्रिया बनाने का कोई तरीका है?ड्राइवर से एक प्रक्रिया बनाएँ

संपादित करें: मुझे केवल ड्राइवर स्थापित करना होगा। यह परियोजना का एक विशिष्ट है।

+0

मैं ड्राइवर से कुछ उपयोगकर्ता प्राप्ति के लिए अपने उपयोगकर्ता-मोड कोड के साथ थ्रेड इंजेक्शन करने के बारे में सोच रहा हूं ... –

+0

http://www.codeproject.com/KB/system/KernelExec.aspx पर देखें। दिलचस्प ... –

उत्तर

5

वैध Win32 प्रक्रिया बनाने के लिए ड्राइवर को CSRSS के साथ संवाद करना चाहिए (पूरी तरह से अनियंत्रित क्या है)। इसलिए मैं एक उपयोगकर्ता-मोड एपीसी कतार में और मौजूदा Win32 प्रक्रिया के संदर्भ में एपीसी कोड के लिए वर्चुअल मेमोरी आवंटित करके समाप्त हुआ (वह कोड CreateProcess को कॉल करेगा और नौकरी करेगा)।

यह एक मुश्किल तरीका है लेकिन यह काम करता है।

2

मुझे यह हासिल करने का एक आसान तरीका नहीं पता है। लेकिन एक विंडोज सेवा चलने के बारे में क्या है जो आपके ड्राइवर में एक ओवरलैप डिवाइस IoControl बनाता है? बदले में सेवा ड्राइवर से प्राप्त डेटा की जांच कर सकती है और आवेदन के अनुसार शुरू कर सकती है।

+1

मैं कहूंगा कि यह सही समाधान है। किसी सेवा से रिवर्स आईआरपी जारी करें, ड्राइवर को पूरा होने दें जब इसे उपयोगकर्ता-मोड प्रक्रिया शुरू करने की आवश्यकता हो। –

+0

सुझाव के लिए धन्यवाद लेकिन मेरे पास मेरी सेवा नहीं चल रही है (यदि केवल सेवा स्थापित की जाएगी और कर्नेल-मोड से शुरू की जाएगी)। –

+0

@ सर्जियस: आपको ड्राइवर को वैसे भी इंस्टॉल करना होगा। आप एक ही आईएनएफ फ़ाइल का उपयोग कर सेवा स्थापित कर सकते हैं। –

0

यह सीधे नहीं किया जा सकता है - Win32 प्रक्रिया बनाने के लिए CreateProcess के उपयोगकर्ता मोड भाग द्वारा सेट अप की आवश्यकता होती है, न केवल कर्नेल मोड में प्रक्रिया ऑब्जेक्ट बनाते हैं।

आपको अपने उपयोगकर्ता मोड एप्लिकेशन को लॉन्च करने के लिए यहां कुछ उपयोगकर्ता मोड कोड की आवश्यकता है - या तो एक सेवा, डेस्कटॉप ऐप या अन्य।

संबंधित मुद्दे