ดังที่ทราบกันดีว่า lsproc ซึ่งพัฒนาขึ้นโดย Harlan Carvey นั้นสามารถอ่าน image ของระบบปฏิบัติการ Windows 2000 SP4 เท่านั้น (เนื่องจากมันเป็น PoC ซึ่งคาดว่าขี้เกียจเขียนให้มัน support image ที่ได้จากระบบปฏิบัติการรุ่นอื่นๆ ให้รู้ว่ามันทำได้เป็นพอ) ดังนั้นด้วยความที่ช่วงนี้ว่างงาน จึงได้หยิบเอาเจ้า lsproc มาทำการตัดแปลงใหม่ให้สามารถอ่าน physical memory image ของ Windows XP SP2 ได้โดยตั้งชื่อเป็น lsproc-xpsp2
ผลที่ได้จากการอ่าน physical memory image ของระบบปฏิิบัติการ Windows XP SP2 ด้วย lsproc-xpsp2 เป็นดังภาพข้างล่าง
:) ดูดีทีเดียวแหละ จากการทดสอบหลายๆครั้งพบว่ายังไม่มีข้อผิดพลาดขึ้นในการทำงาน ซึ่งเด๋วจะให้ชาวบ้านช่วยทดสอบอีกทีหนึ่ง
วกกลับมาดูที่ผลลัพธ์กันนิดนึง สังเกตว่าจะเห็นโปรเซสของ dd.exe ซึ่งมีเครื่องหมาย (x) อยู่ประมาณ 3 - 4 โปรเซส (เป็นโปรเซสที่จบการทำงานไปแล้ว) ซึ่งสาเหตุเนื่องมาจากผมพิมพ์ syntax ผิดตอนเก็บ image ครับ - -" เลยทำให้ content ของ physical memory image นี่มีโปรเซสของ dd.exe ปนอยู่กระจายเต็มไปหมด
หลังจากที่ดูประสิทธิภาพการทำงานของ lsproc-xpsp2 ไปแล้ว เรามาดูกันสักหน่อยดีกว่าว่า lsproc-xpsp2 มีอะไรแตกต่างกับ lsproc จึงสามารถอ่าน physical memory image ของ Windows XP SP2 ได้ (ลืมบอกไปว่า lsproc-xpsp2 อ่าน image ของ Windows 2000 SP4 ไม่ได้นะครับ แหะๆ แต่ในอนาคตจะ merge รวมกับ lsproc แต่คงต้องขออนุญาตเจ้าของก่อน)
lsproc-xpsp2 แตกต่างจาก lsproc ดังนี้
- offset ของข้อมูลต่างๆในโครงสร้างข้อมูล EPROCESS และ ETHREAD ซึ่งสามารถดูข้อมูลสรุปได้จาก blog ของ Andreas Schuster ซึ่งเป็นหนึ่งในบุคคลแรกๆที่ทำเกี่ยวกับเรื่อง memory analysis และเป็นคนเขียนโปรแกรม PTFinder ครับซึ่งเป็นโปรแกรมทำงานใกล้เคียงกับ lsproc ครับ
- โครงสร้างข้อมูลของ EPROCESS และ ETHREAD ของ Windows 2000 SP4 และ Windows XP SP2 มีการเปลี่ยนแปลงในบางส่วนครับ (เอ๊ะ สองข้อนี้มันเขียนรวมกันได้นี่หว่า - -" แหะๆ)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น