วิธีเข้าถึง / dev / mem ใน OSX


12

ฉันจะสามารถเข้าถึงอุปกรณ์ที่เทียบเท่า / dev / mem (หรือ / dev / kmem, / dev / pmap) ได้อย่างไรใน OSX

เท่าที่ฉันรู้ว่ามันถูกลบออกในบางจุด

ฉันสามารถสร้างโหนดนี้ด้วยตนเองหรือวิธีอื่น ๆ ในการทิ้งหน่วยความจำกายภาพได้หรือไม่?

ดู:

คำตอบ:


12

ตามที่การเข้าถึงหน่วยความจำเคอร์เนลบนเวอร์ชัน x86 ของ Mac OS X , /dev/memและ/dev/kmemถูกถอดออกเมื่อ Apple เปิดตัว OS X สำหรับโปรเซสเซอร์ Intel

บทความ (ดีมาก) ยังอธิบายถึงวิธีการเปิดใช้งานอุปกรณ์หน่วยความจำอีกครั้ง ได้แก่ การใช้kmem=1อาร์กิวเมนต์การบู๊ตเคอร์เนล

โปรดทราบว่าเป็นความเห็นด้านล่างโดยโอนีล , ใน MacOS 10.15 Catalina (และอาจจะตั้งแต่ MacOS 10.12 เซียร์) การตั้งค่า NVRAM เท่านั้นที่สามารถเปลี่ยนไปเมื่อ Mac ของคุณบูตเข้าสู่โหมดการกู้คืน ในการเข้าสู่โหมดการกู้คืนเปิดเครื่อง Mac ของคุณและกด-R ค้างไว้จนกระทั่งโลโก้ปรากฏขึ้นเรียกใช้ Terminal จากเมนูยูทิลิตี้ในแถบเมนูเรียกใช้:

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

(ใน macOS รุ่นก่อนหน้าเช่น OS X Mavericks 10.9.2 คุณสามารถเปิดใช้งานอุปกรณ์หน่วยความจำภายในระบบปฏิบัติการอีกครั้งดังนั้นเพียงแค่เปิด Terminal พิมพ์คำสั่งด้านบนและรีบูต)

หาก Mac ของคุณไม่สามารถบู๊ตได้หรือมีปัญหาใด ๆให้รีเซ็ต NVRAM โดยกดปุ่มoptionPRค้างไว้จนกว่าคุณจะได้ยินเสียงเริ่มต้นเป็นครั้งที่สองดังอธิบายใน "การรีเซ็ต NVRAM / PRAM" ในKB HT1379 เกี่ยวกับ NVRAM และ PRAM .

หากคุณต้องการรีเซ็ตอาร์กิวเมนต์ให้พิมพ์sudo nvram -d boot-argsและตรวจสอบnvram -p | grep boot-argsว่าไม่ได้พิมพ์ผลลัพธ์ใด ๆ


1
ฉันได้ลองใช้วิธีนี้ใน macOS Sierra แล้ว แต่ก็ไม่ได้ทำให้อุปกรณ์ปรากฏขึ้นมา/devบางทีคุณรู้หรือไม่ว่า Apple ปิดตัวเลือกนี้และมีทางเลือกอื่นในการเข้าถึงหน่วยความจำใน 10.12 หรือไม่
Zohar81

1
ในบางจุดการตั้งค่า nvram สามารถเปลี่ยนแปลงได้เมื่อ Mac ของคุณถูกบูทเข้าสู่โหมดการกู้คืน ดังนั้นหากคุณเปิดเครื่อง Mac ของคุณและกด Cmd-R ค้างไว้จนกระทั่งโลโก้ปรากฏขึ้นจากนั้นให้วาง Terminal จาก UI การติดตั้งการกู้คืนและเรียกใช้คำสั่งควรทำงานได้ สิ่งนี้ใช้ได้กับฉันใน OS X Catalina เมื่อวานนี้
neal

4

ฉันคิดว่าฉันได้มันมาใช้กับ macOS Sierra! ฉันดาวน์โหลดโครงการของ comex: โครงการ Kmem ฉันรวบรวม kext แก้ไขสิทธิ์แล้วโหลดมัน! ใช้ terminal ฉันเดินเข้าไป/devและlsแสดงให้เห็นว่าทั้งสองmemและkmem...

แก้ไข: หากคุณดาวน์โหลดโครงการคุณจะต้องเปลี่ยนคอมไพเลอร์ใน Xcode เพื่อใช้งานล่าสุด (เช่น ... ฉันไม่รู้ว่าเวอร์ชันอื่นใช้งานได้หรือไม่ ... ) เพื่อการเข้าถึงผลลัพธ์อย่างรวดเร็วที่ฉันได้ทำไปแล้ว ทางแยกของโครงการ comex ที่คอมไพล์บน macOS Sierra! Kmem สำหรับ Sierra Fork

อีกครั้งนี่เป็นงานของ comex ไม่ใช่ของฉันฉันเพิ่งเปลี่ยนการตั้งค่าคอมไพเลอร์และอัปโหลด! :)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.