一种解析Windows操作系统的休眠数据的方法与流程

文档序号:17441795发布日期:2019-04-17 04:51阅读:534来源:国知局
一种解析Windows操作系统的休眠数据的方法与流程

本发明属于电子取证领域,具体涉及一种解析windows操作系统的休眠数据的方法。



背景技术:

从windows2000开始,微软使用了一种新的方法,允许windows操作系统在电源即将关闭的时候保存系统当前的运行状态,这种方法在电源即将关闭的时候把内存中的所有数据和cpu的寄存器数据保存到磁盘上的系统文件hiberfil.sys中。当计算机再次打开电源启动的时候,可以从磁盘上的系统文件hiberfil.sys恢复上次关闭电源时的系统运行状态。

由于windows操作系统休眠数据存放着整个内存的易失性数据,所以是一个电子取证很好的信息来源。

现有技术中,诸如volatility和rekall等内存取证工具都可以分析windows操作系统休眠数据,但并未披露解析windows操作系统休眠数据的具体技术方案。



技术实现要素:

本发明针对现有技术的不足问题,提出了一种解析windows操作系统的休眠数据的方法,通过判断当前休眠文件是否为windows8操作系统以下的版本,从而采用不同的方法来解析,包括以下步骤:

s001:导入windows操作系统的休眠文件;

s002:判断所述windows操作系统的休眠文件是否为windows8操作系统以下的版本,如果是,执行步骤s005,否则执行步骤s003;

s003:解析windows操作系统的休眠文件,获取第一引导恢复页和第一内核恢复页,并获取各自的恢复集合的偏移地址;

s004:解析恢复集合并获取压缩集合的数据,结束流程;

s005:提取windows操作系统的休眠数据;

s006:获取并解析windows操作系统的休眠数据的压缩块。

优选地,所述步骤s002包括以下步骤:

s0021:读取头结构中签名字段的值;

s0022:判断所述头结构中签名字段的值是否等于\x81\x81xpress,如果是,执行步骤s005,否则执行步骤s003。

所述步骤s003包括以下步骤:

s0031:以windows操作系统的休眠文件的首地址0x0000为起始地址,并读取字节长度为0x1000字节的内容为页面对象的存储镜像的结构,其包含签名字段、所述第一引导恢复页及第一内核恢复页,所述签名字段的状态值为ascii格式存储的字符,其中,hibr或hibr表示休眠,rstr表示处于正在恢复的状态,wake表示苏醒,horm表示windows操作系统总是从最近的休眠文件恢复;

s0032:读取所述第一引导恢复页的值并乘以0x1000的积,作为引导恢复页的恢复集合的偏移地址,其中,所述偏移地址是相对于所述windows操作系统的休眠文件的首地址0x0000的偏移地址;

s0033:读取所述第一内核恢复页的值并乘以0x1000的积,作为第一内核恢复页的恢复集合的偏移地址,其中,所述偏移地址是相对于所述windows操作系统的休眠文件的首地址0x0000的偏移地址。

优选地,所述步骤s004包括以下步骤:

s0041:每个恢复集合由多个压缩集合组成,每个压缩集合由16个4kb字节的物理内存页组成,获取压缩集合的数据,每个压缩集合以压缩集合头结构为起始标识;

s0042:所述压缩集合头结构的前8字节表示页描述符pagedescriptor的数量,其中,所述数量等于0或大于16,表示当前windows操作系统的休眠文件已损坏;

s0043:所述页描述符后连续22字节位表示压缩数据的大小,若所述压缩数据的大小等于压缩集合中物理内存页数量,则表示所述物理内存页的数据未压缩,否则,表示所述物理内存页的数据被压缩。

优选地,所述步骤s006包括以下步骤:

s0061:每个数据集由多个压缩块组成,每个压缩块是长度为4kb字节的物理内存页,每个压缩块以镜像头结构为起始标识;

s0062:所述镜像头结构的前8字节表示签名字段,其值等于\x81\x81xpress;

s0063:所述签名字段后连续10字节表示未压缩页,其值表示未压缩的物理页数;

s0064:所述未压缩页后连续22字节表示压缩块的数据大小,其中,若所述压缩块的数据大小是4kb的整数倍,则表示压缩块的数据未经压缩,否则表示压缩块中数据被压缩。

优选地,所述windows操作系统的休眠文件的文件名为hiberfil.sys。

本发明的有益效果是:解决了现有技术中尚无解析windows操作系统休眠数据的方法的技术问题。

附图说明

图1为本发明的主流程图;

图2为本发明实施例中头结构的数据结构示意图;

图3为本发明实施例中windows8操作系统的休眠文件的数据结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步阐述。如图1所示,本发明的方法包括以下步骤:

s001:导入windows操作系统的休眠文件hiberfil.sys;

s002:判断windows操作系统的休眠文件hiberfil.sys是否为windows8操作系统以下的版本,如果是,执行步骤s005,否则执行步骤s003,具体步骤包括:

s0021:图2示出了本发明实施例中头结构的数据结构示意图,读取头结构_image_xpress_header中签名字段signature的值;

s0022:判断头结构_image_xpress_header中签名字段signature的值是否等于\x81\x81xpress,如果是,执行步骤s005,否则执行步骤s003。

s003:解析windows操作系统的休眠文件,获取第一引导恢复页firstbootrestorepage和第一内核恢复页firstkernelrestorepage,并获取各自的恢复集合restorationset的偏移地址,步骤s003包括以下步骤:

s0031:图3示出了本发明实施例中windows8操作系统的休眠文件hiberfil.sys的数据结构示意图;

以windows操作系统的休眠文件的首地址0x0000为起始地址,并读取字节长度为0x1000字节的内容为页面对象的存储镜像po_memory_image的结构,其包含签名字段signature、第一引导恢复页firstbootrestorepage及第一内核恢复页firstkernelrestorepage,签名字段signature的状态值为ascii格式存储的字符,其中,hibr或hibr表示休眠,rstr表示处于正在恢复的状态,wake表示苏醒,horm表示windows操作系统总是从最近的休眠文件恢复;

s0032:读取第一引导恢复页firstbootrestorepage的值并乘以0x1000的积,作为引导恢复页bootrestorepage的恢复集合restorationset的偏移地址,其中,偏移地址是相对于windows操作系统的休眠文件的首地址0x0000的偏移地址;

s0033:读取第一内核恢复页firstkernelrestorepage的值并乘以0x1000的积,作为第一内核恢复页firstkernelrestorepage的恢复集合restorationset的偏移地址,其中,偏移地址是相对于windows操作系统的休眠文件的首地址0x0000的偏移地址。

s004:解析恢复集合restorationset并获取压缩集合compressionset的数据,结束流程;步骤s004包括以下步骤:

s0041:每个恢复集合restorationset由多个压缩集合compressionset组成,每个压缩集合compressionset由16个4kb字节的物理内存页组成,获取压缩集合compressionset的数据,每个压缩集合compressionset以压缩集合头结构compression_set_header为起始标识;

s0042:压缩集合头结构compression_set_header的前8字节表示页描述符pagedescriptor的数量,其中,数量等于0或大于16,表示当前windows操作系统的休眠文件已损坏;

s0043:页描述符pagedescriptor后连续22字节位表示压缩数据的大小sizeofcompresseddata,若压缩数据的大小sizeofcompresseddata等于压缩集合compressionset中物理内存页数量,则表示物理内存页的数据未压缩,否则,表示物理内存页的数据被压缩。

s005:提取windows操作系统的休眠数据;

步骤s005的方法已由题为《一种提取windows操作系统休眠数据的方法》、申请号为2018105012357、申请日为2018年05月23日的发明申请所公开,将其全文引入本申请作为参考。

s006:获取并解析windows操作系统的休眠数据的压缩块compressionblock,步骤s006包括以下步骤:

s0061:每个数据集xpressset由多个压缩块compressionblock组成,每个压缩块compressionblock是长度为4kb字节的物理内存页,每个压缩块compressionblock以镜像头结构_image_express_header为起始标识;

s0062:镜像头结构_image_express_header的前8字节表示签名字段signature,其值等于\x81\x81xpress;

s0063:签名字段signature后连续10字节表示未压缩页uncompressedpages,其值表示未压缩的物理页数;

s0064:未压缩页uncompressedpages后连续22字节表示压缩块的数据大小compressedsize,其中,若压缩块的数据大小compressedsize是4kb的整数倍,则表示压缩块的数据未经压缩,否则表示压缩块中数据被压缩。

通过本发明提供的方法,解决了现有技术中尚无解析windows操作系统休眠数据的方法的技术问题。

应当理解的是,本发明不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1