OSX में / dev / मेम को कैसे एक्सेस करें?


12

OSX में मैं / dev / mem (या / dev / kmem, / dev / pmap) समतुल्य उपकरण कैसे एक्सेस कर सकता / सकती हूं?

जहां तक ​​मुझे पता है कि इसे किसी बिंदु पर हटा दिया गया था।

क्या मैं किसी भी तरह से या शारीरिक मेमोरी डंप करने के किसी भी तरीके से यह नोड बना सकता हूं?

देख:

जवाबों:


12

मैक ओएस एक्स के x86 संस्करण पर एक्सेसिंग कर्नेल मेमोरी के अनुसार , /dev/memऔर /dev/kmemजब Apple इंटेल प्रोसेसर के लिए ओएस एक्स जारी किया गया था तब हटा दिया गया था।

(उत्कृष्ट) आलेख यह भी बताता है किkmem=1 कर्नेल बूट तर्क का उपयोग करके मेमोरी डिवाइस को फिर से कैसे उपयोग किया जाए ।

ध्यान दें कि, के रूप में द्वारा नीचे टिप्पणी की नील , MacOS 10.15 में कैटालिना (और शायद MacOS 10.12 सिएरा के बाद से), NVRAM सेटिंग्स केवल जब अपने मैक पुनर्प्राप्ति मोड में हटा दिया गया है बदला जा सकता हैरिकवरी मोड में प्रवेश करने के लिए , अपने मैक पर पावर और तुरंत पकड़ -R जब तक कि लोगो दिखाई न दे, मेनू में यूटिलिटीज मेनू से टर्मिनल लॉन्च करें, रन करें:

sudo nvram boot-args="kmem=1"

और रिबूट। आपको इन दो उपकरणों को देखना चाहिए:

$ ls -l /dev/*mem
crw-r----- 1 root kmem 3, 1 2014-02-28 22:09 /dev/kmem
crw-r----- 1 root kmem 3, 0 2014-02-28 22:09 /dev/mem

(ओएस एक्स मावरिक्स 10.9.2 जैसे मैकओएस के पिछले संस्करणों में, आप ऑपरेटिंग सिस्टम के भीतर मेमोरी डिवाइस को फिर से उपयोग कर सकते हैं, इसलिए बस टर्मिनल लॉन्च करें, ऊपर कमांड टाइप करें और रिबूट करें।)

यदि आपका मैक बूट नहीं करेगा या आपके पास कोई समस्या नहीं है , optionPRतो दूसरी बार स्टार्टअप ध्वनि सुनने तक कुंजियों को दबाकर और दबाकर एनवीआरएएम को रीसेट करें, जैसा कि केबी एचटी 1379 " एनवीआरएएम / पीआरएएम " में समझाया गया है, एनवीआरएएम और प्राम के बारे में।

यदि आप तर्क को रीसेट करना चाहते हैं, तो टाइप करें sudo nvram -d boot-argsऔर जांचें कि nvram -p | grep boot-argsकोई परिणाम प्रिंट नहीं करता है।


1
मैंने इस विधि को macOS Sierra में आज़माया है, लेकिन यह उपकरणों के नीचे दिखाई नहीं देता है /dev। शायद आप जानते हैं कि क्या Apple ने इस विकल्प को बंद कर दिया है, और क्या इस मेमोरी को 10.12 में एक्सेस करने का कोई दूसरा विकल्प है?
ज़ोहरा81

1
कुछ बिंदु पर, nvram सेटिंग्स को तभी बदला जा सकता है जब आपका मैक रिकवरी मोड में बूट किया गया हो। इसलिए यदि आप अपने मैक पर पावर करते हैं, और लोगो दिखाई देने तक तुरंत सीएमडी-आर पकड़ लेते हैं, तो रिकवरी इंस्टॉलेशन यूआई से एक टर्मिनल पर जाएं और कमांड चलाएं, यह काम करना चाहिए। यह बस मेरे लिए ओएस एक्स कैटालिना पर कल काम किया।
नील

4

मुझे लगता है कि मुझे यह macOS सिएरा पर काम करने के लिए मिला है! मैंने कॉमेक्स का प्रोजेक्ट डाउनलोड किया: Kmem प्रोजेक्ट मैंने kext संकलित किया, अनुमतियाँ तय की और फिर उसे लोड किया! का उपयोग करते हुए टर्मिनल मैं में चला गया /devऔर lsदोनों से पता चला है memऔर kmem...

संपादित करें: यदि आप प्रोजेक्ट डाउनलोड करते हैं, तो आपको नवीनतम (उदाहरण के लिए ... उपयोग करने के लिए Xcode में कंपाइलर बदलने की आवश्यकता होगी ... मुझे नहीं पता कि क्या अन्य संस्करण हालांकि काम करते हैं ...) परिणामों की त्वरित पहुंच के लिए मैं पहले ही बना चुका हूं कॉमेक्स प्रोजेक्ट का एक कांटा जो मैकओएस सिएरा पर संकलित करता है! सिएरा फोर्क के लिए Kmem

फिर से, यह कम्क्स का काम है, मेरा नहीं, मैंने बस संकलक सेटिंग को बदल दिया है और इसे अपलोड किया है! :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.