![]() 图2中对取证而言,最感兴趣的是原型ptes数组mmpte,原型pte包含了内存页物理地址。 若替换此物理地址,则原型pte中的一个指针会重新指向原subsection对应的页被交换到磁盘文件上。Subsection结构中的NumberOfFullSectors和PtesInSubsection字段值对于原型ptes数组的遍历十分重要。每个原型pte占4096字节页大小,每个完整的扇区占512字节, 故每个pte中至多能存放8个扇区内容。为了准确判断哪些内容在内存,哪些内容保存在磁盘 上,需要获取正确的边界对齐值。 ![]()
(2) Shared Cache Map 案例分析
我们可以对一个文件进行分析,打开一个文件通过程序获取到文件对象值(这里可以采 用驱动程序调用ObReferenceObjectByHandle函数,根据文件句柄值获取到文件对象值。假 设值为8606bea8,则此时使用windbg工具执行“dtnt!_FILE_OBJECT8606bea8”,可以得出 此文件对象下每个成员的内存地址信息,如下所示: |