ความพยายามในการเข้าถึง RAM / dev / mem …พูดว่า“ ไม่อนุญาตให้ใช้งาน”


9

ฉันใช้ Ubuntu 12.04

ฉันอ่านบทช่วยสอนต่อไปนี้เกี่ยวกับวิธีการเข้าถึงเนื้อหาของ RAM ใน Linux ....

http://www.rootninja.com/using-dd-to-search-for-strings-in-memory-or-devices/

รหัส:

dd if=/dev/mem | hexdump -C | grep “string to search for”

ดังนั้นฉันเรียกใช้รหัส ...

รหัส:

sudo dd if=/dev/mem | hexdump -C > NAMEOFOUTPUTFILEHERE.txt

และ ... มันเริ่มปั๊มรหัส HEX จนกระทั่งอีกไม่กี่วินาทีต่อมาที่มันบอกว่า:

dd: reading `/dev/mem': Operation not permitted
2056+0 records in 
2056+0 records out
1052672 bytes (1.1 MB) copied, 0.44834 s, 2.3 MB/s

โดยทั่วไป .. ฉันสามารถรับเนื้อหาการถ่ายโอนข้อมูล RAM ได้ประมาณ 3.3 MB จนกระทั่งโปรแกรมหยุดพูดว่า "ไม่อนุญาตการดำเนินการ"

ดังนั้นฉันสงสัยว่าทำไมฉันไม่สามารถทิ้งเนื้อหาทั้งหมดของ RAM ได้ นี่เป็นข้อ จำกัด โดยเจตนาในอูบุนตูเพื่อหยุดยั้งแฮกเกอร์อันตรายหรือไม่? หรือมันเป็นอย่างอื่น? มีใครรู้บ้าง ขอบคุณ


3
ตกลง ... ลืมมัน ... ปรากฎว่า Ubuntu มีขีด จำกัด 1 MB สำหรับการแยก RAM ตามที่กำหนดไว้ในเคอร์เนล .. และแน่นอนว่านั่นคือความปลอดภัยที่ดีเพราะแฮกเกอร์ไม่สามารถดึงรหัสผ่านของคุณจาก RAM และอื่น ๆ ... ดังนั้น ... ใช่ .... ตอนนี้กระทู้นี้ได้รับการแก้ไขแล้วนี่คือข้อมูลเต็มรูปแบบสำหรับทุกคนที่สนใจ ....

1
ถ้าเคอร์เนลของคุณถูกคอมไพล์ด้วย STRICT_DEVMEM = y (ดูเช่น / boot / config-KERNELVERSION) ดังนั้นเฉพาะ 1MB แรกเท่านั้นที่อ่านจาก / dev / mem นี่ไม่ใช่ปัญหารุ่นเคอร์เนลมากนักเนื่องจากวิธีการรวบรวมเคอร์เนลของเครื่องของคุณเอง เมล็ดส่วนใหญ่ distro จะมีข้อ จำกัด นี้ในสถานที่ด้วยเหตุผลที่ดี คุณสามารถดาวน์โหลดและ insmod เคอร์เนลโมดูล fmem เพื่อแก้ไขปัญหานี้ ที่ความเสี่ยงของคุณเอง! rmmod มันโดยเร็วที่สุดหลังจากนั้น โมดูล fmem จัดเตรียมอุปกรณ์ / dev / fmem โดยไม่มีข้อ จำกัด ด้านความปลอดภัย

1
สามารถรับเนื้อหาการถ่ายโอนข้อมูล RAM ได้ประมาณ 3.3 MB "" เอ่อคุณคืออะไร 1052672 bytes (1.1 MB) copiedทั้งหมดที่ผมเห็นคือ ไม่ใช่ 3.3MB (หรือ 2.3MB / วินาทีซึ่งเป็นความเร็ว)
Hennes

คำตอบ:


4

เคอร์เนล linux บนการติดตั้ง Ubuntu ของคุณมาพร้อมกับการตั้งค่า*ซึ่ง จำกัด การแยก RAM ให้มีขนาด 1 MB

หากคุณไม่ต้องการให้คุณสามารถคอมไพล์เคอร์เนลใหม่โดยที่ไม่มีมัน (Caveeat ชัดเจน: คุณกำลังลดความปลอดภัย!) หรือคุณสามารถดาวน์โหลดและติดตั้งโมดูลเคอร์เนล fmem เพื่อแก้ไขปัญหานี้ได้ ที่ให้อุปกรณ์ / dev / fmem โดยไม่มีการรักษาความปลอดภัยใด ๆ

ตามที่กล่าวไว้โดย Opello: คุณสามารถใช้strict-devmem=0ในเคอร์เนล cmdline


* : STRICT_DEVMEM=y(ดูเช่น / boot / config-KERNELVERSION)


3
คุณยังสามารถส่งผ่านstrict-devmem=0เคอร์เนล cmdline
opello

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