2016-05-17 10 views
7

मैं लिनक्स (डब्ल्यूएसएल) के लिए विंडोज सबसिस्टम के अंदर एक लिनक्स बाइनरी से विंडोज एपीआई फ़ंक्शंस को कैसे कॉल कर सकता हूं? मुझे पूरा यकीन है कि ऐसा करने के लिए कोई दस्तावेज तरीका नहीं है, लेकिन फिर भी कोशिश करना दिलचस्प हो सकता है।लिनक्स प्रक्रियाओं के लिए विंडोज सबसिस्टम से Win32/NT-native API को कॉल करें?

मुझे Win32 फ़ंक्शंस को कॉल करने में दिलचस्पी है, या यदि यह संभव नहीं है, तो कम से कम विंडोज एनटी देशी एपीआई (एनटी *, ज़ेड *)। मूल एपीआई बहुत कम उपलब्ध होनी चाहिए, क्योंकि घटक जो लिनक्स प्रक्रियाओं (एलएक्सएसएस) चलाता है, इन एपीआई पर निर्भर करता है।

विंडोज़ डीएलएल लोड करने के लिए कस्टम लोड लाइब्रेरी-जैसे फ़ंक्शन बनाने के लिए यह संभव नहीं हो सकता है। एक और विचार कर्नेल कार्यों के ज्ञात टुकड़ों (यानी, उनके उपयोगकर्ता-मोड प्रविष्टि बिंदु) के लिए प्रक्रिया स्मृति को खोजना होगा।

क्या किसी ने इसका प्रयोग किया है और समाधान साझा करना चाहते हैं?

+1

यह प्रस्तुति - https://github.com/ionescu007/lxss/blob/master/The%20Linux%20kernel%20hidden%20inside%20windows%2010.pdf - सुझाव देता है (कम से कम मेरे लिए) कि लिनक्स प्रक्रियाएं इतनी हैं पिक्चर को संसाधित किया गया है कि उनके पता स्थान पर कोई ntdll मैप नहीं किया गया है। साथ ही, सभी सिस्टम कॉल को डब्लूएसएल के लिए पिको प्रोसेस प्रदाता द्वारा नियंत्रित किया जाता है (मुझे उम्मीद है कि वे सिर्फ अलग सिस्टम सेवा प्रेषण तालिका का उपयोग करें, इसलिए एनटी सिस्कोल उपयोगकर्ता स्पेस से पहुंच योग्य नहीं हैं)। –

उत्तर

5

संक्षेप में, आप नहीं कर सकते।

वास्तविक प्रक्रियाएं जिनमें लिनक्स प्रक्रियाएं चलती हैं Win32 प्रक्रियाएं नहीं होती हैं और Win32 उपयोगकर्ता-मोड कोड को लोड और निष्पादित करने में असमर्थ हैं, न ही वे मानक Win32 NT कर्नेल प्रविष्टि बिंदुओं का आह्वान करने में सक्षम हैं।

डब्लूएसएल द्वारा नियोजित पिकोप्रोसेस इंफ्रास्ट्रक्चर पर अधिक जानकारी के लिए, this blog and/or watch the accompanying video पढ़ें।

यदि आप डब्लूएसएल के अंदर चल रहे कोड से विंडोज कोड "कॉल" करना चाहते हैं, तो आप सॉकेट/मैसेजिंग/आरपीसी/आरईएसटी कॉलिंग तकनीक के कुछ रूपों का उपयोग करने पर विचार करना चाहेंगे जिसमें रिश्ते के ईथर/दोनों सिरों को सुन सकते हैं और कुछ नेटवर्क/सॉकेट/पाइप के माध्यम से किए गए संदेशों का जवाब दें।

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