【摘要】 本发明公开了一种Windows系统物理内存的分析方法。本发明基于KPCR结构体和CR3寄存器内容,在内存镜像文件文件中KPCR结构体,以该结构体为基础查找到CR3寄存器内容,以CR3寄存器内容确定内存页模式,然后转换内存虚拟地址为物理地址;根据内存镜像文件中的系统版本信息确定所获得KPCR和CR3的正确性,若正确,即可相应得到内核信息中的进程信息和驱动信息。本发明提供了一种能够准确地实现虚拟地址到物理内存地址转换,且能够准确查找系统进程、系统模块信息的Windows系统物理内存分析方法。 【专利类型】发明授权 【申请人】山东省计算中心 【申请人类型】科研单位 【申请人地址】250014 山东省济南市历下区科院路19号 【申请人地区】中国 【申请人城市】济南市 【申请人区县】历下区 【申请号】CN200810159260.8 【申请日】2008-11-27 【申请年份】2008 【公开公告号】CN101414304B 【公开公告日】2010-12-15 【公开公告年份】2010 【授权公告号】CN101414304B 【授权公告日】2010-12-15 【授权公告年份】2010.0 【IPC分类号】G06F17/30; G06F21/00 【发明人】王连海; 张淑慧 【主权项内容】一种基于KPCR结构的Windows系统物理内存分析方法,其包括以下步骤:1)在Windows内存镜像文件中按照KPCR结构体的结构特征KPCR结构体:通过在内存镜像文件中寻找两个大于0x80000000的邻近值,且这两个值满足相差0x120,该邻近的两个物理地址中的前一物理地址减去0x1c即为KPCR物理地址;2)根据所获得KPCR结构体定位系统版本信息的KdVersionBlock指针地址;3)根据所述KPCR物理地址确定CR3寄存器中的物理地址,并确定该物理地址指向的内容;4)依据上述CR3寄存器物理地址第一字节存放的内容判断内存页模式;5)根据所得内存页模式按照Intel处理器地址转换方式获取内存分页虚拟地址所对应的物理地址和所述KdVersionBlock指针的物理地址;6)依据所述KdVersionBlock指针物理地址查找内存镜像位置在此地址处的系统版本信息的系统子版本号;7)验证上述系统子版本号与微软所发布的系统子版本号是否一致,若一致则所获得的KPCR结构体和CR3寄存器的物理地址正确,根据KdVersionBlock的内核变量获取系统驱动信息和进程信息;若错误,且KdVersionBlock指针未到文件尾,文件指针后移0x100后在Windows内存镜像文件中继续KPCR结构体。 【当前权利人】山东省计算中心 【当前专利权人地址】山东省济南市历下区科院路19号 【家族被引证次数】12