2009-10-13 2 views
5

मैं .NET में मेमोरी एक्सेस के साथ प्रयोग कर रहा हूं। पल में, मैं एक प्रबंधित कार्यक्रम है कि एक अप्रबंधित प्रक्रिया शुरू होता है और अपने लोड मॉड्यूल में से एक (एक DLL) की BaseAddress पुन: प्राप्त करता है। मैं जो करना चाहता हूं वह किसी भी तरह लोड मॉड्यूल के पीई हेडर को पढ़ता है ताकि मैं बाद में अपने निर्यात के पते को पुनः प्राप्त कर सकूं।मैं स्मृति में लोड मॉड्यूल के पीई हेडर को कैसे पढ़ूं?

दुर्भाग्य से, मैं इस बारे में कोई अच्छी जानकारी नहीं मिल रहा। कोई विचार?

उत्तर

5

This पीई फ़ाइल स्वरूप के लिए एक अच्छा प्रारंभिक बिंदु है।

आप कर सकते हैं पी/आह्वान ReadProcessMemory आधार पता है कि आप अपने प्रक्रिया में हेडर नकल करने के लिए है से। आपको विभिन्न पीई शीर्षकों में पढ़ने वाली स्मृति को पार्स करने की आवश्यकता होगी। पहला हेडर IMAGE_DOS_HEADER है, जो आपको पर इंगित करेगा। बाइनरी में IMAGE_EXPORT_DIRECTORY का स्थान ढूंढने के लिए आप IMAGE_NT_HEADERS में IMAGE_OPTIONAL_HEADER का उपयोग कर सकते हैं।