2013-03-21 12 views
5

मैं कर्नेल पता स्थान है जहाँ मेरे लोड करने योग्य कर्नेल मॉड्यूल insmod से दूसरी जगह है खोजने की कोशिश कर रहा हूँ की गिरी का पता ढूँढना।एक लोड करने योग्य कर्नेल मॉड्यूल

मैं उनकी जगह बदली पता चला है कि मी का उपयोग करके, -O स्विच जबकि मॉड्यूल insmod'ing, हम केवल प्रतीक मेज और निष्पादन के वर्गों के पते मॉड्यूल को देखते-बिंदु से देख सकते हैं और नहीं कर सकते आया पते, क्योंकि जब हम एक इंसोड करते हैं तो स्थानांतरण की प्रक्रिया की जाती है।

क्या कोई बता सकता है कि कर्नेल-मेमोरी में मॉड्यूल के स्थानांतरित पते को कैसे ढूंढें यानी कर्नेल के भीतर स्थित पता जहां एक लोड मॉड्यूल रहता है?

धन्यवाद!

पी.एस कृपया ध्यान दें कि मैं एक Redhat 2.4 लिनक्स कर्नेल जो/proc/मॉड्यूल सूची लोड मॉड्यूल की आभासी पतों प्रदर्शित नहीं करता है का उपयोग कर रहा हूँ।

उत्तर

7

आप कोर सेक्शन पॉइंटर (आभासी पता, भौतिक स्मृति पता नहीं, लेकिन इसे भौतिक पते में परिवर्तित किया जा सकता है) और मॉड्यूल के पदचिह्न आकार/proc/मॉड्यूल फ़ाइल से प्राप्त कर सकते हैं।

इस तरह मेरी लिनक्स बॉक्स पर फ़ाइल के भाग के रूप:

autofs4 29253 3 - Live 0xf9014000 
hidp 23105 2 - Live 0xf900d000 
rfcomm 42457 0 - Live 0xf8f84000 
+0

हाय @tian_yufeng, धन्यवाद! हालांकि मैं एक Redhat 2.4 लिनक्स कर्नेल का उपयोग कर रहा हूं जिसमें/proc/मॉड्यूल लिस्टिंग मेरे प्रश्न में संपादित वर्चुअल एड्रेस नहीं दिखाती है। क्या आप जानते हैं कि इस 2.4 कर्नेल में लोड मॉड्यूल के कर्नेल पते को कैसे प्राप्त किया जाए? – freax

+0

2.4 कर्नेल थोड़ा सा है। मुझे लगता है कि आपके इच्छित फीचर का समर्थन करने के लिए कोड परिवर्तन आवश्यक हैं। क्या आप मुझे अपने कर्नेल का विस्तार संस्करण बता सकते हैं? तो मैं एक जांच करने के लिए एक डाउनलोड कर सकते हैं। –

+0

मैं उपयोग कर रहा हूँ Redhat 2.4.20-24.7 गिरी का उपयोग कर "__this_module.next" सूचक जो मेरा मानना ​​है कि आभासी हैं मॉड्यूल के पते मिल गया है। क्या आप मुझे बता सकते हैं कि इन वर्चुअल पतों को भौतिक पते में कैसे परिवर्तित करें? धन्यवाद! – freax

10

निर्देशिका /sys/module/<module-name>/sections/.text में जाएं - जहां कोड भरी हुई है /sys/module/<module-name>/sections/.data की बीएसएस अनुभाग के लिए डेटा अनुभाग और .bss दिखाएगा दिखाएगा मॉड्यूल।

+3

एक त्वरित युक्ति: आपको बिल्ली /sys/module/module-name-here/sections/.* काम करने के लिए सामान प्राप्त करने के लिए रूट की आवश्यकता है .. (अन्यथा यह केवल 0x0 मान प्रदर्शित करता है)। – kaiwan

+0

@Kaiwan आपकी टिप मेरे दिन बचाता है! – mkdong

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