Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Mac

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ

บทความนี้เป็นคำแนะนำที่ครอบคลุมเกี่ยวกับวิธีอ่านเนื้อหาของ RAM ในคอมพิวเตอร์ของคุณ

Random Access Memory (RAM) เป็นองค์ประกอบสำคัญของระบบคอมพิวเตอร์ และมีหน้าที่จัดเก็บข้อมูลชั่วคราวที่ระบบต้องการเพื่อทำหน้าที่ต่างๆ ของมัน แต่เนื้อหาของ RAM อาจมีความผันผวน และมักจะสูญหายไปเมื่อระบบถูกปิด

วิธีหนึ่งที่จะรักษาเนื้อหาของ RAM ไว้คือการดำเนินการถ่ายโอนข้อมูล RAM ซึ่งเป็นกระบวนการคัดลอกเนื้อหาของ RAM ไปยังอุปกรณ์จัดเก็บข้อมูล เช่น ฮาร์ดไดรฟ์ คุณสามารถวิเคราะห์ดัมพ์ RAM และข้อมูลที่อยู่ในนั้นสามารถให้ข้อมูลเชิงลึกอันมีค่าเกี่ยวกับสถานะของระบบ ณ เวลาที่ถ่ายโอนข้อมูล

ในบทความนี้ ผมจะอธิบายขั้นตอนการอ่านเนื้อหาของ RAM พร้อมอธิบายว่า RAM dump คืออะไร และมีประโยชน์อย่างไรในการวิเคราะห์ระบบคอมพิวเตอร์ นอกจากนี้ ฉันจะให้คำแนะนำแบบทีละขั้นตอนเกี่ยวกับวิธีการถ่ายโอนข้อมูล RAM และวิธีวิเคราะห์ข้อมูลผลลัพธ์

ทำไมต้องอ่านข้อมูล RAM

การอ่านข้อมูลจากแผ่นดิสก์เป็นสิ่งที่คุณคุ้นเคย แต่เราสามารถอ่านข้อมูลโดยตรงจาก RAM ซึ่งเป็นแหล่งจัดเก็บข้อมูลที่สำคัญที่สุดได้หรือไม่

ในฐานะนักพัฒนา เราสามารถตรวจสอบความซับซ้อนของพื้นที่และเจาะลึกเข้าไปใน RAM เพื่อทำความเข้าใจว่าเกิดอะไรขึ้น

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

ตัวอย่างเช่น หากคอมพิวเตอร์ของคุณขัดข้องกะทันหัน การตรวจสอบเนื้อหาของ RAM สามารถช่วยให้คุณระบุสาเหตุของการขัดข้องได้

กรณีการใช้งานอีกประการหนึ่งคือสำหรับการวิเคราะห์ทางนิติเวช เมื่อตรวจสอบระบบคอมพิวเตอร์เพื่อหาหลักฐานการกระทำผิด การตรวจสอบเนื้อหาของ RAM สามารถให้ข้อมูลเชิงลึกอันมีค่าเกี่ยวกับกิจกรรมที่ดำเนินการบนระบบได้

ตัวอย่างเช่น ผู้เชี่ยวชาญด้านความปลอดภัยอาจใช้การวิเคราะห์ RAM เพื่อตรวจสอบว่ากระบวนการใดทำงานบนระบบหรือเพื่อระบุไฟล์ที่เพิ่งเข้าถึง

นอกจากนี้ การเข้าถึงและอ่านเนื้อหาของ RAM ยังมีประโยชน์สำหรับนักพัฒนาซอฟต์แวร์และนักวิจัยอีกด้วย ด้วยการวิเคราะห์ข้อมูลที่จัดเก็บไว้ใน RAM นักพัฒนาสามารถรับข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพของซอฟต์แวร์ของตน และระบุปัญหาที่อาจเกิดขึ้นหรือปัญหาคอขวดได้ นักวิจัยยังสามารถใช้การวิเคราะห์ RAM เพื่อศึกษาพฤติกรรมของมัลแวร์หรือเพื่อพัฒนาเครื่องมือและเทคนิคด้านความปลอดภัยใหม่ๆ

โดยรวมแล้ว การเข้าถึงและการอ่านเนื้อหาของ RAM จะมีประโยชน์สำหรับการแก้ไขปัญหา การวิเคราะห์ทางนิติวิทยาศาสตร์ การพัฒนาซอฟต์แวร์ และการวิจัย โดยให้วิธีที่มีคุณค่าในการรับข้อมูลเชิงลึกเกี่ยวกับการทำงานภายในของระบบคอมพิวเตอร์ และสามารถช่วยระบุปัญหาและภัยคุกคามด้านความปลอดภัยที่อาจเกิดขึ้นได้

ก่อนที่เราจะเจาะลึกรายละเอียด เรามาดูระบบการตั้งชื่อกันก่อน นี่อาจเป็นความรู้ทั่วไป แต่คุณจะต้องเข้าใจคำศัพท์เฉพาะเมื่อคุณอ่านคู่มือนี้ ดังนั้นจึงคุ้มค่าที่จะทบทวน

มีอุปกรณ์ฮาร์ดแวร์ทางกายภาพที่เรียกว่า RAM (ซึ่งย่อมาจาก Random Access Memory) ได้แก่ หน่วยความจำกายภาพ CPU ฮาร์ดดิสก์ และส่วนประกอบทางกายภาพอื่นๆ

นอกจากนี้เรายังมีระบบปฏิบัติการอีกด้วย ระบบปฏิบัติการจะพูดคุยกับชิ้นส่วนฮาร์ดแวร์ที่เรียกว่า "เคอร์เนล" อยู่เสมอ และนี่คือลักษณะที่สำคัญที่สุดประการหนึ่งของซอฟต์แวร์นี้

หากเราพิจารณาสิ่งต่าง ๆ จากมุมมองของผู้ใช้ เราจะลงชื่อเข้าใช้ระบบปฏิบัติการในตอนแรกเพื่อให้สามารถดำเนินงานของเราได้ ซึ่งส่วนใหญ่รวมถึงการเรียกใช้แอปพลิเคชัน

เคอร์เนลคืออะไร

เคอร์เนลเป็นส่วนพื้นฐานของระบบปฏิบัติการที่ยอมรับคำสั่งจากผู้ใช้ด้วยความช่วยเหลือของโปรแกรมที่เราทำงานเบื้องหลัง สิ่งนี้อาจเกิดขึ้นได้ไม่ว่าโปรแกรมที่เราทำงานเบื้องหลังจะเป็นอย่างไรก็ตาม

ทุกอย่างที่ต้องคำนวณได้รับการจัดการโดยหน่วยประมวลผลกลาง (CPU) แต่ไม่ว่าเราจะทำอะไรและจัดการบริการที่ CPU มอบให้ ข้อมูล คำแนะนำ โค้ด และโปรแกรมทั้งหมดจะต้องผ่านหน่วยความจำเข้าถึงโดยสุ่ม (RAM)

นี่หมายความว่าผลลัพธ์ของสิ่งที่เราทำกับข้อมูล ณ เวลาใดก็ตามจะมีอยู่บนหน่วยความจำ หากคุณเป็นโปรแกรมเมอร์และกำลังสร้างโครงสร้างข้อมูลบางประเภท แสดงว่าข้อมูลทั้งหมดจะอยู่ด้านบนของ RAM

เราสามารถไปที่ RAM ได้โดยตรงและดูว่าโครงสร้างข้อมูลถูกสร้างขึ้นอย่างไรและจัดเรียงอย่างไร และเราจะเห็นว่าความซับซ้อนของพื้นที่ทำงานอย่างไร

ตัวอย่างเช่น หากเรากำลังพูดถึงเว็บเบราว์เซอร์ใดๆ เช่น Chrome อาจมีข้อบกพร่องด้านความปลอดภัยเกิดขึ้นในแอปพลิเคชัน ดังนั้นวิธีที่มีประสิทธิภาพมากที่สุดคือไปที่ RAM และตรวจสอบว่าข้อมูลทำงานอย่างไร

สมมติว่าคุณเปิดเว็บไซต์ที่ปลอดภัยใน Chrome (หรือเบราว์เซอร์ใดๆ ก็ตาม) เช่น gmail.com ข้อมูลใดๆ ที่คุณป้อนใน Gmail รวมถึงชื่อผู้ใช้และรหัสผ่านของคุณจะถูกส่งผ่านทางอินเทอร์เน็ตไปยังเซิร์ฟเวอร์ที่ดำเนินการโดย Google ข้อมูลนั้นได้รับการเข้ารหัสอย่างสมบูรณ์ และจะถือเป็นเรื่องท้าทายหากเป็นไปไม่ได้ที่จะถอดรหัสรหัสผ่าน

แต่ในการป้อนรหัสผ่าน คุณอาจใช้คอมพิวเตอร์ที่มีแป้นพิมพ์ติดอยู่ หลังจากนั้นบางโปรแกรมจะเข้ารหัสข้อมูลและส่งไปยังอินเทอร์เน็ต ซึ่งหมายความว่าในตอนแรก ข้อมูลของคุณแสดงอยู่ใน RAM

ประการแรก รหัสผ่านคือข้อมูลมาตรฐาน และรหัสผ่านจะไปอยู่ที่ด้านบนของ RAM จากนั้นบางโปรแกรมจะเข้ารหัสข้อมูลและส่งไปยังอินเทอร์เน็ต หากคุณสามารถเข้าถึง RAM ได้ คุณสามารถตรวจสอบเพื่อดูว่ารหัสผ่านของคุณได้รับการเข้ารหัสหรือไม่ และกระบวนการนี้ค่อนข้างตรงไปตรงมา

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

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

RAM จะถูกล้างออกจากเนื้อหาเหล่านี้ในไม่ช้า "RAM dump" คือกระบวนการในการจับ RAM ทั้งหมด สิ่งนี้แสดงให้เห็นถึงรูปแบบจริงที่ทำให้ชุดข้อมูลทั้งหมดสามารถเข้าถึงได้และโหลดลงใน RAM เป็นครั้งแรก และคุณจะได้เรียนรู้วิธีจับหรือแยกข้อมูลจากหน่วยความจำต่อไป

เพื่อที่จะบรรลุเป้าหมายนี้ คุณจะต้องมีซอฟต์แวร์บางรูปแบบ ด้วยเหตุนี้เป้าหมายของโปรแกรมนี้ก็คือการเดินทางเข้าไปในหน่วยความจำให้ไกลขึ้น มันจะเข้าสู่หน่วยความจำและดึงข้อมูลที่เก็บไว้ทั้งหมดจากหน่วยความจำก่อนดำเนินการต่อ

LiME คืออะไร

ตัวแยกหน่วยความจำ Linux ซึ่งบางครั้งเรียกว่า LiME เป็นซอฟต์แวร์ที่ทรงพลัง เป็นสิ่งที่คุณใช้เพื่อแยกหน่วยความจำจาก Linux ซอฟต์แวร์ชิ้นนี้เรียกอีกอย่างว่าไดรเวอร์หรือเรียกอีกอย่างว่าโมดูล เนื่องจาก RAM เป็นอุปกรณ์ที่ทำให้สิ่งต่างๆ ซับซ้อนยิ่งขึ้น

เราจำเป็นต้องมีไดรเวอร์บางรูปแบบเพื่อเข้าถึงอุปกรณ์เพื่อที่เราจะได้ลองอ่านเนื้อหาของอุปกรณ์ได้ LiME เป็นตัวอย่างของไดรเวอร์ และหากคุณคุ้นเคยกับ Linux คุณอาจรู้ว่าในการสร้างฟังก์ชันไดรเวอร์ใดๆ คุณต้องโหลดไดรเวอร์นั้นด้วยความช่วยเหลือจากเคอร์เนล

ภายในบริบทของ Linux ไดร์เวอร์ยังถูกเรียกว่าโมดูลอีกด้วย ดังนั้น LiME จึงเป็นโมดูลเคอร์เนล Linux เราสามารถเข้าถึงสิ่งที่เรียกว่าโมดูลเคอร์เนลที่โหลดได้ ซึ่งช่วยให้เราสามารถติดตั้งโมดูลบนระบบปฏิบัติการได้

เราได้ครอบคลุมพื้นหลังเพียงพอแล้ว ตอนนี้เรามาดูกันว่าเราจะแยกเนื้อหาของ RAM ได้อย่างไร เราจะดำเนินการตามกระบวนการทีละขั้นตอนแบบลงมือปฏิบัติจริง

ตั้งค่า และการติดตั้ง

ดังนั้นสิ่งเดียวที่เราต้องการคือไดรเวอร์ LiME นี่คือลิงค์สำหรับดาวน์โหลดโมดูลนี้:https://github.com/gursimarsm/LiME

ตอนนี้ให้บู๊ตระบบ Linux ของคุณ (ฉันใช้ RedHat Enterprise Linux) คุณสามารถใช้ 08 คำสั่งตรวจสอบจำนวน RAM ที่ใช้งาน ความพร้อมใช้งาน และรายละเอียดอื่นๆ ของฉันมีลักษณะเช่นนี้:

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ เอาต์พุตจากการรัน 17 คำสั่ง

ในการเข้าถึง RAM เราจำเป็นต้องมีซอฟต์แวร์บางตัวที่เคอร์เนลสามารถโหลดโมดูลเพิ่มเติมบางส่วนได้ ในกรณีของเรา ชื่อโมดูลคือ LiME ดังนั้น ซอฟต์แวร์ที่เราติดตั้งจึงเรียกว่า “การพัฒนาเคอร์เนล ” และ “ส่วนหัวเคอร์เนล ". ซอฟต์แวร์สองชิ้นนี้คือสิ่งที่เราจำเป็นต้องติดตั้งเพื่อดำเนินการต่อไป ซึ่งก็คือการใช้โมดูล LiME

หากคุณต้องการติดตั้งซอฟต์แวร์ คุณควรกำหนดค่า "yum" ไว้ สำหรับบริบท ยำ เป็นคำสั่งที่คุณสามารถใช้เพื่อติดตั้งซอฟต์แวร์ในระบบปฏิบัติการ RedHat Linux ฉันจะสาธิตวิธีกำหนดค่าในภาคผนวกเพื่อใช้อ้างอิง

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ การติดตั้ง

ตอนนี้คุณได้ติดตั้งซอฟต์แวร์นั้นแล้ว คุณต้องมีซอฟต์แวร์เพิ่มอีกชิ้นหนึ่งเนื่องจากคุณต้องดาวน์โหลดไดรเวอร์บางตัวจาก GitHub ดังนั้น ตอนนี้คุณต้องติดตั้ง Git หากคุณยังไม่มี คุณสามารถทำได้โดยใช้คำสั่ง 29 . คุณต้องกำหนดค่าบัญชีของคุณเพื่อให้สามารถทำงานกับมันได้

# git config --global user.name "Your Name" 
# git config --global user.email "you@example.com"

ฉันแชร์พื้นที่เก็บข้อมูลด้านบน เป็นโมดูลเคอร์เนลที่โหลดได้ (LKM) ช่วยให้คุณได้รับหน่วยความจำทั้งหมดจากระบบปฏิบัติการ Linux หรือระบบปฏิบัติการภาษาใดๆ ก็ตาม (รวมถึงอุปกรณ์ Android เนื่องจาก Android ใช้ Linux เช่นกัน)

คุณสามารถดาวน์โหลดโมดูลได้โดยใช้ 31 คำสั่ง

หลังจากดาวน์โหลดแล้ว คุณจะต้องย้ายไปยังไดเร็กทอรีของซอฟต์แวร์ คุณจะพบหลายโฟลเดอร์ที่นั่น แต่หากต้องการรันโค้ดหลัก คุณต้องย้ายไปยังไดเร็กทอรี "src"

ในไดเร็กทอรีนี้ คุณจะพบหลายโปรแกรมที่ใช้ภาษา C ดังนั้นเพื่อที่จะใช้งานไฟล์เหล่านี้ คุณจะต้องคอมไพล์ไฟล์เหล่านั้น หากต้องการทำเช่นนั้น คุณสามารถใช้ 48 คำสั่ง ติดตั้งดังนี้:

# yum install make 
# yum install gcc

ในไดเร็กทอรี /LiME/src/ ให้รัน 58 คำสั่งให้คอมไพล์โค้ดทั้งหมด

หากคุณพบข้อผิดพลาด อาจเป็นเพราะเราใช้ LiME เวอร์ชันล่าสุด และมาพร้อมกับฟีเจอร์ใหม่ที่เรียกว่า orc metadata create หากต้องการใช้คุณลักษณะนี้ คุณต้องติดตั้งอีกหนึ่งสิ่งที่เป็นส่วนหนึ่งของ LiME ที่เรียกว่า 65 . คุณสามารถทำได้โดยใช้ yum ดังที่คุณเห็นด้านล่าง:

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ วิธีการติดตั้ง 73

หลังจากนั้นหากตอนนี้เรารัน 88 คำสั่งจะขอให้คอมไพเลอร์ GCC รวบรวมโค้ดทั้งหมด หลังจากการคอมไพล์ มันจะสร้างไฟล์อ็อบเจ็กต์สุดท้ายหนึ่งไฟล์ที่เรียกว่าไฟล์อ็อบเจ็กต์เคอร์เนล และนั่นคือโมดูลสุดท้ายใน LiME

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ เอาต์พุต

คุณสามารถค้นหาไฟล์นี้ในไดเรกทอรีเดียวกันได้โดยใช้ 92 คำสั่ง

วิธีใช้โมดูล

ด้วยโมดูลนี้ ตอนนี้เคอร์เนลสามารถจับหรืออ่าน RAM ทั้งหมดได้แล้ว ตามค่าเริ่มต้น เราไม่สามารถอ่าน RAM ทั้งหมดได้ในครั้งเดียว แต่ตอนนี้เราทำได้เนื่องจากโมดูล LiME

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับโมดูล LiME คุณสามารถใช้ 105 คำสั่ง พิมพ์ 117 พร้อมด้วย 124 . นี่จะแสดงรายละเอียดเพิ่มเติม เช่น ตำแหน่งที่ไฟล์พร้อมใช้งาน และยังแสดงโมดูลหรือไดรเวอร์ทั้งหมดที่มาพร้อมกับพารามิเตอร์พิเศษบางประเภทด้วย ทุกพารามิเตอร์มีประโยชน์บางประการ

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ modinfo

ที่นี่เราจะใช้พารามิเตอร์สองตัวซึ่งสำคัญมาก:137 และ 144 .

155 คือเมื่อเราอ่าน RAM ทั้งหมด เราต้องเก็บข้อมูลของ RAM ไว้เป็นไฟล์บางไฟล์ ดังนั้น เพื่อระบุไฟล์ปลายทางที่เราต้องการสร้าง เราต้องให้ข้อมูลเฉพาะเจาะจงตรงนี้

พารามิเตอร์ถัดไป 160 ระบุรูปแบบที่เราต้องการอ่านข้อมูล RAM ดังนั้นในกรณีนี้เราต้องการอ่านรูปแบบของ RAM ตามที่เป็นอยู่ ข้อมูลที่จัดเก็บไว้ใน RAM ส่วนใหญ่จะอยู่ในรูปแบบไบนารี่ และเราต้องการอ่านข้อมูลทั้งหมดในรูปแบบไบนารี่นั้นเท่านั้น และบันทึกข้อมูลในรูปแบบ Raw

ดังนั้น รูปแบบจะเป็นไฟล์ Raw และจัดเก็บไว้ในไฟล์ทุกที่ที่เราระบุเส้นทาง

ในที่สุดก็ถึงเวลาอ่านข้อมูลจาก RAM มาดูคำสั่งหลักที่จะช่วยให้เราเริ่มอ่าน RAM ทั้งหมดกันดีกว่า

การสาธิต

พิมพ์รหัสผ่านสำหรับบัญชี Gmail ของคุณใน Chrome สำหรับการสาธิตนี้ ซึ่งจะช่วยให้คุณเรียนรู้วิธีบันทึกข้อมูลจาก RAM และดูว่ารหัสผ่านของคุณถูกเข้ารหัสหรือไม่

หากต้องการตรวจสอบทั้งสองสิ่งนี้ ให้ย้ายไปที่พรอมต์คำสั่งแล้วตรวจสอบว่าข้อมูลยังคงอยู่ใน RAM หรือไม่ คุณจะต้องโหลดโมดูลเฉพาะโดยใช้คำสั่ง 178 . ซึ่งจะช่วยให้คุณแทรกโมดูลได้

คัดลอกเส้นทางที่สมบูรณ์ของโมดูลและวางพร้อมกับ 187 คำสั่ง

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ 196 คำสั่ง

โมดูลนี้จะถูกโหลดด้วยความช่วยเหลือของเคอร์เนล โมดูลจะเริ่มจับข้อมูลทั้งหมดจาก RAM และจะจัดเก็บไว้ในไฟล์ เช่น myram.data

นอกจากนี้ยังจะโหลดการถ่ายโอนข้อมูลหน่วยความจำทั้งหมดหรือการถ่ายโอนข้อมูล RAM ลงในไฟล์นี้และรูปแบบที่เราต้องการจับภาพ ดังนั้นรูปแบบจะเป็นรูปแบบดิบ

เราจะใช้พารามิเตอร์ทั้งสองนี้ (ไม่ต้องกังวลกับเรื่องนี้ในตอนนี้) เราต้องการเพียงสองพารามิเตอร์ในการดำเนินการ และทันทีที่เรากดคำสั่งนี้ ข้อมูลใดก็ตามที่เรามีจะถูกบันทึกและจัดเก็บไว้ในไฟล์นี้โดยเฉพาะ โดยทั่วไปคำสั่งนี้จะใช้เวลาไม่กี่วินาที ขึ้นอยู่กับความเร็วของ CPU และจำนวนข้อมูลที่เรามีใน RAM

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ คำสั่ง

วิธีการอ่านข้อมูล

ตอนนี้เรามีไฟล์นี้ myram.data และข้อมูลทั้งหมดของ RAM จะถูกเก็บไว้ในไฟล์นี้ เนื่องจากเราบันทึกข้อมูลนี้ในรูปแบบดิบ ข้อมูลจึงอยู่ในรูปแบบไบนารี หากเราพยายามอ่านข้อมูลนี้จากไฟล์นี้โดยตรง ในฐานะมนุษย์ เราจะไม่สามารถอ่านข้อมูลดังกล่าวได้ แม้ว่าเราจะลองใช้บรรทัดเริ่มต้นโดยใช้คำสั่ง head เพื่ออ่านบางบรรทัดจาก 10 บรรทัดแรกก็ตาม

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ เอาต์พุต

ดังนั้นเราจึงสามารถใช้คำสั่ง “cat” ซึ่งจะอ่านข้อมูลทั้งหมด แต่สิ่งเดียวกันนี้กำลังจะเกิดขึ้น – มันจะอ่านข้อมูลทั้งหมด แต่ข้อมูลจะแสดงในรูปแบบไบนารี่ จากนั้นเราจำเป็นต้องใช้ฟังก์ชันไปป์กับคำสั่งนี้และรวมเข้ากับคำสั่งใหม่ที่เรียกว่า 200 :

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ คำสั่ง

สตริงคือคำสั่งที่จะแปลงข้อมูลเป็นข้อความปกติในรูปแบบที่มนุษย์สามารถอ่านได้

วิธีเข้าถึงและอ่าน RAM ของคอมพิวเตอร์ของคุณ:คู่มือปฏิบัติ เอาต์พุต

รายการจะดำเนินต่อไปเรื่อยๆ คุณสามารถขัดจังหวะได้โดยใช้ Ctl+C .

ในตอนนี้ การดูและอ่านข้อมูลทั้งหมดไม่ได้มีความหมายอะไรมากนัก เรารู้ว่าข้อมูลบางอย่างที่อยู่ใน RAM คือรหัสผ่านที่เรียกว่า mywebpasswordgmail ดังนั้น เพียงเพื่อยืนยันว่าข้อมูลนี้มีอยู่บน RAM เราจึงสามารถใช้ไปป์อีกหนึ่งรายการพร้อมกับ 219 คำสั่ง คำสั่ง grep ช่วยให้เราจัดเรียงข้อมูล

cat /myram.data | strings | grep mywebpasswordgmail

ตอนนี้เรากำลังค้นหาสตริงนี้ในข้อมูลทั้งหมด มันจะแปลงข้อมูลเป็นข้อความปกติ และเมื่อใดก็ตามที่สตริงนั้นปรากฏขึ้น grep จะคว้าบรรทัดนั้นแล้วให้เราเริ่มค้นหา จากนั้นแสดงข้อมูลนี้ให้เราดู

ดังนั้น อย่างที่คุณเห็นจากตัวอย่างง่ายๆ นี้ ไม่ว่าคุณจะพิมพ์อะไรบนคีย์บอร์ดก็สามารถเข้าไปใน RAM ได้เช่นกัน แม้ว่าจะเป็นรหัสผ่านของคุณหรือเว็บไซต์ที่ปลอดภัยประเภทใดก็ตามที่คุณกำลังท่องเว็บ ข้อมูลของคุณก็จะอยู่บน RAM เช่นกัน ไม่สำคัญว่าคุณรันโปรแกรมอะไร หากคุณพิมพ์โดยใช้แป้นพิมพ์ ทุกอย่างจะโหลดบน RAM และสามารถแตกไฟล์ได้ สิ่งนี้เรียกว่าการถ่ายโอนข้อมูลหน่วยความจำ

LiME มอบความสามารถอันทรงพลังอื่นๆ มากมายให้กับเรา ขณะนี้ เรากำลังเก็บข้อมูลโดยตรงจากระบบที่เราดำเนินการ แต่เรายังสามารถเรียกใช้ LiME บนระบบได้ และสามารถบันทึกข้อมูลแบบเรียลไทม์และส่งข้อมูลผ่านเครือข่ายไปยังคอมพิวเตอร์เครื่องอื่นได้

สิ่งนี้หมายความว่าอย่างไร? ลองคิดแบบนี้:ตัวอย่างเช่น มีคนเปิดเว็บไซต์และกำลังพิมพ์บางอย่างแบบเรียลไทม์ ข้อความทั้งหมดนี้กำลังถูกส่งไปยังคอมพิวเตอร์เครื่องอื่นแบบเรียลไทม์

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

บทสรุป

ในที่สุดเราก็มาถึงจุดสิ้นสุดของบทความนี้แล้ว ฉันหวังว่าคุณจะสนุกกับมันและได้เรียนรู้สิ่งใหม่ๆ

ฉันยินดีรับฟังข้อเสนอแนะและการสนทนาบน LinkedIn เสมอ ติดต่อฉันด้วยข้อความโดยตรง

หากคุณสนุกกับการเขียนของฉันและต้องการให้ฉันมีแรงบันดาลใจ ลองเริ่มต้นใช้งาน GitHub และรับรองทักษะที่เกี่ยวข้องบน LinkedIn

จนถึงตอนต่อไป อยู่อย่างปลอดภัยและเรียนรู้ต่อไป

เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น