रैम मेमोरी की सामग्री कैसे देखें? [बन्द है]


14

क्या रैम मेमोरी की सामग्री को देखने का कोई तरीका है? पहले बाइट से लेकर आखिरी तक। मैं देखना चाहता हूं कि रैम में ओएस और उस पर चलने वाली सभी प्रक्रियाएं कहां स्थित हैं। क्या यह संभव है?


1
एक संरक्षित स्मृति वातावरण में एक उपयोगकर्ता प्रक्रिया के रूप में , आपके पास केवल उपयोगकर्ता की वर्चुअल मेमोरी स्पेस की प्रतिलिपि तक पहुंच है। कर्नेल मेमोरी स्पेस, अन्य उपयोगकर्ताओं की वर्चुअल मेमोरी स्पेस, और अप्रयुक्त भौतिक मेमोरी सभी आपकी चुभती आँखों से सुरक्षित हैं। दूसरी ओर, जब तक आप वर्चुअल मेमोरी मैपिंग नहीं जानते, भौतिक एसडीआरएएम के स्नैपशॉट में एक यादृच्छिक समय बहुत अधिक नहीं होगा।
चूरा

रैंडम एक्सेस मेमोरी मेमोरी? तो पेज आवंटन तालिका?
ta.speot.is

वास्तव में आप क्या हासिल करने की कोशिश कर रहे हैं? meta.stackexchange.com/questions/66377/what-is-the-xy-problem
bwDraco

आप शायद कुछ उपकरण के साथ बहुत खुश होंगे जो दिखाता है कि मेमोरी कैसे आवंटित की गई है, बनाम वास्तव में 1s और 0s को देख रहा है।
डैनियल आर हिक्स

1
यह सिर्फ जिज्ञासा से बाहर था
ओस्टा

जवाबों:


8

आप एक कर्नेल डिबगर का उपयोग कर सकते हैं, जो विंडोज के लिए सॉफ्टीस की तरह "रॉ" मेमोरी एक्सेस की अनुमति देगा । आप लिनक्स कर्नेल के लिए डिबगर के रूप में कार्य करने के लिए GDB को कॉन्फ़िगर कर सकते हैं । यदि वर्चुअल मशीन एक विकल्प है, तो कुछ वर्चुअलाइजेशन सॉफ़्टवेयर मशीन की स्थिति (रैम सहित) को डिस्क में सहेजने का समर्थन करता है, जिसे बाद में और अधिक विश्लेषण किया जा सकता है । हालांकि, यह ध्यान दिया जाना चाहिए कि अधिकांश "आधुनिक" ऑपरेटिंग सिस्टम एड्रेस स्पेस लेआउट रैंडमाइजेशन (एएसएलआर) का उपयोग करते हैं। विभिन्न सुरक्षा मुद्दों और कारनामों (यानी स्टैक / हीप बफर ओवरफ्लो) को कम करने में मदद करने के लिए सिस्टम का वास्तविक भौतिक मेमोरी मैप जानबूझकर खंडित है ।

किसी दिए गए प्रोग्राम के लिए एक आधुनिक ऑपरेटिंग सिस्टम में चल रहा है, हालाँकि, आप किसी दिए गए प्रोसेस / थ्रेड के लिए लॉजिकल मेमोरी मैप प्राप्त कर सकते हैं - जब तक आपके पास उपयुक्त डीबगिंग सिंबल और डीबगर हो। यदि आप समग्र दृष्टिकोण चाहते हैं, यदि सॉफ़्टवेयर / हार्डवेयर वर्चुअल मेमोरी का उपयोग करते हैं, तो स्थिति अत्यधिक जटिल हो जाती है। फिर, हालांकि, अगर आप सचमुच चाहते हैं क्या सिर्फ रैम पर, पहले पैराग्राफ में देखते हैं।


9

विंडोज पर, भौतिक मेमोरी की सामग्री \Device\PhysicalMemoryको ऑब्जेक्ट मैनेजर में ऑब्जेक्ट के माध्यम से एक्सेस किया जा सकता है । इसके लिए सिस्टम में कर्नेल-लेवल एक्सेस की आवश्यकता होती है, जिसका अर्थ है कि आपको इस ऑब्जेक्ट को एक्सेस करने के लिए एक प्रोग्राम स्थापित करना होगा, जो कि संभवतः कर्नेल-मोड ड्राइवर है।

लिनक्स पर, भौतिक मेमोरी की सामग्री को सीधे बाइनरी डेटा के /dev/memरूप में पढ़ा जा सकता है root। देखें / देव / मेम क्या है? और mem(4)अधिक जानकारी के लिए मैन पेज।

मुझे यकीन नहीं है कि आपको यह निर्धारित करने की आवश्यकता है कि ऑपरेटिंग सिस्टम और प्रक्रियाएं भौतिक मेमोरी में स्थित हैं, हालांकि ...


3
विंडोज पर, आप, वास्तव में, खुले \Device\PhysicalMemory(समतुल्य /dev/kmem) कर सकते हैं, जैसा कि RAMMap और PhysMem उपयोगिताओं करते हैं।
user1686

1
अब नहीं है। सर्वर 2003 और बाद के सभी संस्करणों में, \DevicePhysicalMemoryऑब्जेक्ट को उपयोगकर्ता मोड से नहीं खोला जा सकता है। RAMmap और अधिकांश अन्य sysinternals टूल में उनके कार्य के उस भाग को करने के लिए कर्नेल मोड ड्राइवर शामिल होता है।
जेमी हनराहन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.