2012-07-02 10 views
7
  1. में स्ट्रिंग टेबल मुझे कुछ प्रतीक मिलता है और मुझे एक एल्फ फ़ाइल का हेक्सेडिट मिलता है। मैं कैसे जान सकता हूं कि यह प्रतीक किस खंड में दिखाई देता है?ईएलएफ

  2. strtab और shstrtab के बीच क्या अंतर है? प्रतीक तारों की एक सरणी भी है?

जब मैं नाम तालिका में सूचकांक मिलता है, यह strtab या shstrtab में सूचकांक है?

उत्तर

8

पहले प्रश्न के लिए, हमें ठीक से समझने के लिए एल्फ फ़ाइल के हेक्सेडिट की आवश्यकता होगी।

दूसरे प्रश्न के लिए - स्ट्रैबब स्ट्रिंग तालिका के लिए स्ट्रैटबैब हैडस्ट्रैब अनुभाग हैडर स्ट्रिंग तालिका के लिए है।

जब हम ईएलएफ हेडर पढ़ते हैं, तो हम देखते हैं कि प्रत्येक एल्फफ़ीडर संरचना में e_shstrndx नामक सदस्य होता है। यह shstrtab के लिए एक सूचकांक है। यदि आप इस अनुक्रमणिका का उपयोग करते हैं और फिर shstrtab से पढ़ते हैं तो आप उस खंड का नाम पा सकते हैं।

strtab, अन्य सभी संदर्भों के लिए स्ट्रिंग तालिका है। जब आप किसी ईएलएफ ऑब्जेक्ट से प्रतीकों को पढ़ते हैं, तो प्रत्येक SYLAB संरचना (Elf32_Sym) में st_name नामक सदस्य होता है। यह उस प्रतीक का स्ट्रिंग नाम प्राप्त करने के लिए स्ट्रैब में एक अनुक्रमणिका है।

क्या आप प्रतीक तारों की सरणी पर अधिक विस्तृत कर सकते हैं? इसके अलावा, नाम तालिका से आपका क्या मतलब है?

आप निम्न लिंक का उल्लेख कर सकते - Reading ELF String Table on Linux from C

आशा इससे आपके प्रश्न का उत्तर देते हैं।

+0

धन्यवाद। क्या आप कृपया "अन्य संदर्भ" का उदाहरण दे सकते हैं? सेक्शन नाम के बारे में क्या? वे स्ट्रैब में भी दिखाई देते हैं? – user1479376

+0

सोरी कुछ दिनों के लिए दूर था। अनुभाग नाम को .shstrtab में संग्रहीत किया जाता है। अन्य सभी संदर्भों से मेरा मतलब है कि डीआईई ब्लॉक –

+0

में संग्रहीत प्रतीक हैं जो इसे उत्तर के रूप में चिह्नित करना चाहिए। – Jichao

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