จาก Wiki ของ Forensic: เครื่องมือ: Memory Imaging
สิ่งที่สกัดมา
ลินุกซ์
สำหรับระบบ Linux รุ่นเก่าสามารถใช้โปรแกรม dd เพื่ออ่านเนื้อหาของหน่วยความจำกายภาพจากไฟล์อุปกรณ์ / dev / mem อย่างไรก็ตามในระบบลีนุกซ์ล่าสุด / dev / mem ให้การเข้าถึงช่วงของที่อยู่ที่ จำกัด เท่านั้นแทนที่จะใช้หน่วยความจำกายภาพเต็มรูปแบบของระบบ ในระบบอื่นอาจไม่สามารถใช้งานได้เลย ตลอด 2.6 ซีรีส์ของเคอร์เนลลินุกซ์แนวโน้มที่จะลดการเข้าถึงโดยตรงไปยังหน่วยความจำผ่านไฟล์อุปกรณ์หลอก ดูตัวอย่างเช่นข้อความที่มาพร้อมกับแพทช์นี้: http://lwn.net/Articles/267427/
บนระบบ Red Hat (และผู้ที่ใช้งาน distros ที่เกี่ยวข้องเช่น Fedora หรือ CentOS) สามารถโหลดไดรเวอร์ความผิดพลาดเพื่อสร้าง pseudo-device / dev / crash สำหรับการเข้าถึงหน่วยความจำกายภาพดิบ (ผ่านคำสั่ง "modprobe crash") โมดูลนี้ยังสามารถรวบรวมสำหรับการกระจาย Linux อื่น ๆ ที่มีความพยายามเล็กน้อย (ดูตัวอย่างเช่นhttp://gleeda.blogspot.com/2009/08/devcrash-driver.html ) เมื่อมีการแก้ไข, รวบรวมและโหลดบนระบบอื่น, อุปกรณ์หน่วยความจำที่ได้รับจะไม่ปลอดภัยต่อภาพในทั้งระบบ ต้องใช้ความระมัดระวังเพื่อหลีกเลี่ยงที่อยู่ที่ไม่ได้รับการสนับสนุน RAM บน Linux / / proc / iomem จะเปิดเผยช่วงที่อยู่ที่ถูกต้องกับภาพซึ่งทำเครื่องหมายด้วย "System RAM"
หน่วยความจำเชิงพาณิชย์สำหรับการพิสูจน์หลักฐานทางนิติเวชนั้นมาพร้อมกับเวอร์ชันที่แก้ไขแล้วของตัวขับชนและสคริปต์สำหรับการทิ้งหน่วยความจำอย่างปลอดภัยโดยใช้ไดรเวอร์ตัวเดิมหรือตัวดัดแปลงบนระบบ Linux ใด ๆ ก็ตาม
fmem เป็นโมดูลเคอร์เนลที่สร้างอุปกรณ์ / dev / fmem คล้ายกับ / dev / mem แต่ไม่มีข้อ จำกัด อุปกรณ์นี้ (ฟิสิคัลแรม) สามารถคัดลอกได้โดยใช้ dd หรือเครื่องมืออื่น ใช้งานได้กับ 2.6 Linux kernels ภายใต้ GNU GPL
Linux Memory Extractor (LiME) เป็นโมดูลเคอร์เนลที่สามารถโหลดได้ (LKM) ซึ่งช่วยให้สามารถรับหน่วยความจำที่ระเหยได้จากอุปกรณ์ที่ใช้ Linux และ Linux เช่นที่ขับเคลื่อนโดย Android เครื่องมือสนับสนุนการดัมพ์หน่วยความจำทั้งระบบไฟล์ของอุปกรณ์หรือผ่านเครือข่าย
ฉันพบตัวอย่างการfmem
ใช้งานนี้ซึ่งดูเหมือนจะเป็นวิธีที่ง่ายที่สุดในการถ่ายโอนข้อมูลหน่วยความจำเพื่อวัตถุประสงค์ในการวิเคราะห์คุณไม่สามารถใช้อีกต่อไป/dev/mem
หลังจากเมล็ด 2.6.x ได้เนื่องจากฉันเข้าใจแล้ว
ตัวอย่าง fmem
$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size= 2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!
$ ls /dev/f*
/dev/fb0 /dev/fd0 /dev/fmem /dev/full /dev/fuse
$ sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s
* ที่มา: ฉันจะถ่ายโอนหน่วยความจำกายภาพทั้งหมดไปยังไฟล์ได้อย่างไร
ตัวอย่าง LiME
สำหรับการวิเคราะห์หน่วยความจำชั่วคราวนอกจากนี้ยังมีหน้านี้หัวข้อ: ลินุกซ์วิเคราะห์หน่วยความจำ มีตัวอย่างโดยละเอียดในบทช่วยสอนวิดีโอนี้ที่แสดงการใช้ LiME และความผันผวนเพื่อรวบรวมการถ่ายโอนข้อมูลหน่วยความจำแล้ววิเคราะห์แยกประวัติผู้ใช้ Bash ออกจากการถ่ายโอนข้อมูลหน่วยความจำ
มีอะไรอีกบ้าง?
นอกจากนี้ยังมีคำถาม & คำตอบ U&L นี้: ฉันจะถ่ายโอนข้อมูลหน่วยความจำระบบเต็มได้อย่างไร ซึ่งมีตัวอย่างและข้อมูลเพิ่มเติม