มีวิธีการดูเนื้อหาของหน่วยความจำ RAM หรือไม่? ตั้งแต่ไบต์แรกจนถึงอันสุดท้าย ฉันต้องการดูว่าระบบปฏิบัติการและกระบวนการทั้งหมดทำงานอยู่ที่ไหนใน RAM เป็นไปได้ไหม
มีวิธีการดูเนื้อหาของหน่วยความจำ RAM หรือไม่? ตั้งแต่ไบต์แรกจนถึงอันสุดท้าย ฉันต้องการดูว่าระบบปฏิบัติการและกระบวนการทั้งหมดทำงานอยู่ที่ไหนใน RAM เป็นไปได้ไหม
คำตอบ:
คุณสามารถใช้เคอร์เนลดีบักซึ่งจะช่วยให้การ "ดิบ" เข้าถึงหน่วยความจำเช่นSoftIce สำหรับ Windows นอกจากนี้คุณยังสามารถกำหนดค่า GDB จะทำหน้าที่เป็นดีบักสำหรับลินุกซ์ หากเครื่องเสมือนเป็นตัวเลือกซอฟต์แวร์เสมือนจริงบางตัวรองรับการบันทึกสถานะของเครื่อง (รวมถึง RAM) ลงในดิสก์ซึ่งสามารถวิเคราะห์เพิ่มเติมได้ อย่างไรก็ตามควรสังเกตว่าระบบปฏิบัติการ "ทันสมัย" ส่วนใหญ่ใช้การกำหนดรูปแบบพื้นที่ว่าง (ASLR) แผนผังหน่วยความจำฟิสิคัลที่แท้จริงของระบบนั้นมีการแยกส่วนเพื่อช่วยบรรเทาปัญหาด้านความปลอดภัยและการใช้ประโยชน์ต่าง ๆ (เช่นล้นสแต็ค / บัฟเฟอร์ฮีป )
สำหรับโปรแกรมที่กำหนดให้ทำงานในระบบปฏิบัติการที่ทันสมัยอย่างไรก็ตามคุณสามารถขอรับการแมปหน่วยความจำแบบลอจิคัลสำหรับกระบวนการ / เธรดที่กำหนดตราบใดที่คุณมีสัญลักษณ์การดีบักและดีบักเกอร์ที่เหมาะสม หากคุณต้องการมุมมองโดยรวมหากซอฟต์แวร์ / ฮาร์ดแวร์ใช้หน่วยความจำเสมือนสถานการณ์จะซับซ้อนขึ้นอย่างมาก อีกครั้งแม้ว่าถ้าคุณต้องการสิ่งที่แท้จริงเพียงแค่ในแรมดูวรรคแรก
บน Windows, เนื้อหาของหน่วยความจำกายภาพที่สามารถเข้าถึงได้ผ่านทาง\Device\PhysicalMemory
วัตถุในผู้จัดการวัตถุ สิ่งนี้ต้องการการเข้าถึงระดับเคอร์เนลในระบบซึ่งหมายความว่าคุณจะต้องติดตั้งโปรแกรมซึ่งมักจะเป็นไดรเวอร์ของโหมดเคอร์เนลเพื่อเข้าถึงวัตถุนี้
บน Linux เนื้อหาของหน่วยความจำกายภาพสามารถเข้าถึงได้โดยตรงเป็นข้อมูลไบนารีโดยการอ่านเป็น/dev/mem
root
ดู/ dev / mem คืออะไร และmem(4)
หน้าคนสำหรับรายละเอียดเพิ่มเติม
ฉันไม่แน่ใจว่าทำไมคุณต้องพิจารณาว่าระบบปฏิบัติการและกระบวนการตั้งอยู่ในหน่วยความจำกายภาพแม้ว่า ...
\DevicePhysicalMemory
วัตถุไม่สามารถเปิดได้จากโหมดผู้ใช้ RAMmap และเครื่องมือ sysinternals อื่น ๆ ส่วนใหญ่จะรวมถึงไดรเวอร์โหมดเคอร์เนลเพื่อทำงานส่วนนั้น