论文部分内容阅读
隐写取证已经成为了当前计算机取证所面临的严峻挑战之一。在隐写取证中,倘若取证者能够识别出取证目标中的隐写软件,则将能避开当前隐写取证所面临的困难,为目标的发现和秘密信息的提取提供线索和依据。本文在总结当前隐写软件识别及其相关的软件特征技术研究现状的基础上,对隐写取证的重要环节——隐写软件识别问题进行了较为深入的探讨。具体工作如下:1、从取证流程的角度,对原有隐写取证步骤进行了扩展,将隐写软件识别问题纳入隐写取证过程之中,丰富了隐写取证的手段,拓展了隐写取证的内涵。2、基于代码分割的思想,提出了三种代码分割方法,给出了一个基于代码分割的隐写软件识别框架。该框架基于代码分割能够将一个复杂的程序(或软件)分割成若干较易理解的代码片段,降低了程序理解的复杂度。3、提出了一种基于“指令词”的隐写软件识别算法。该算法基于k-gram原理将程序指令操作码序列近似分割成若干易于理解、具有独立功能的代码片段,构建“指令词”;统计隐写软件中出现频率较高的“指令词”,构建基于“指令词”的软件特征向量,并用“指令词”出现的频数对特征向量量化;运用向量夹角余弦刻划待识别软件相对于目标隐写软件的匹配程度。实验结果表明:该算法不仅能够区分目标隐写软件与其他软件,较为可靠地识别出经过代码迷惑变换的隐写软件,而且可识别经过升级、捆绑的隐写软件“变种”,并区分不同的隐写软件。4、提出了一种基于寄存器依赖的隐写软件识别算法。算法根据程序指令间的寄存器依赖关系,将程序的寄存器依赖图分割成若干路径,并将分割得到的各条路径上的指令序列作为代码模块;运用待识别软件与目标隐写软件的代码模块中的最大共有子序列的相对长度刻划模块间的匹配度,运用二分图匹配的思想刻划待识别软件相对于目标隐写软件的匹配度。实验结果表明:该算法对于隐写软件的变种能够有效地识别。最后,对全文工作进行了总结,对未来的研究进行了展望。