内存分析的两个主要对象即内核内存与用户级内存。在windows环境下,内核内存主要 包含设备驱动程序、NT操作系统可执行程序以及硬件抽象层模块。大多数用户级内存则主 要包含单个进程、进程地址空间中的文件(从磁盘空间加载到用户内存空间的代码、数据, 如可执行文件exes以及动态链接库dlls)。内核内存中的大部分虚拟地址空间均独立于某 特定的进程上下文,为全局地址,而其它虚拟地址空间则与某个特定进程相关。对内存进行 提取分析时,还是存在很多饶有兴趣的事。本文将重点分析单个进程地址空间上下文的用户 级内存。通常情况下,攻击者主要针对的是victim的用户级内存,因为相对内核内存而言, 在用户级内存空间下更容易写入或获取到代码等内容。 传统内存取证方法
尽管以前的内存取证和进程重构方法取得了一定的成绩,但仍然有很大的提升空间。传 统的取证方式对跨内存区对虚拟地址进行翻译,却忽视了町1«1(^8系统的典型文件结构 FileObjects.尽管?乜6015知(^对象不会出现再所有的内存区,但至少他们会作为内存映射 文件如0匕8和£乂£8方式出现。很显然,0匕8和£乂£8是取证调查中的重点对象,但传统方法却 忽视了这部分地址空间的分析;还有归属问题,当一个工具对进程内存区每个地址进行暴力 搜索时,它必然会当作此进程内核页的一个属性部分而被搜索,当事实上它并不属于此进程。 |