输入法取证:一种Windows8/10中文用户输入痕迹信息提取方法研究与实现

查看内容

输入法取证:一种Windows8/10中文用户输入痕迹信息提取方法研究与实现

2020-10-30 09:12| 发布者: 龙华司鉴| 查看: 1605| 评论: 0|来自: 龙华司法鉴定整理

用户词库文件留存了大量的信息往往被取证人员忽略…


引 言

当今信息化时代下,存在于各类计算机设备中的数据信息已成为越来越多刑事案件侦查的线索来源。Windows操作系统作为当今全球计算机使用率最高的操作系统,针对Windows操作系统的电子数据取证一直是电子数据取证领域研究的重点之一例,其中针对Windows操作系统中用户常用应用软件的行为取证分析,已成为近年来公安机关取证人员获取案件侦查线索的途径之—。

中文输入法作为Windows中文操作系统必备的一款应用程序,不仅支持中文文字编码和输入的功能,还具有自定义、自学习用户词库功能,这一功能将系统用户常用或者符合用户用语习惯的字词句以一种特定的结构形式存储成独立的词库数据集文件,以方便后期提高输入效率。

这类用户词库文件留存了大量的与系统用户直接相关的输入痕迹信息,如目标姓名、地址、谈话内容等关键词,都能在输入法用户词库中有所体现,但用户词库中所存储的这些信息往往被取证人员忽略。

虽然,目前已有研究者通过对用户输入行为日志的研究来改善输入法软件性能和提升用户体验,或者利用中文拼音输入法数据对方言词汇进行自动识别,也有研究者对中文输入法用户词库的提取进行研究,但其研究对象主要集中于第三方输入法,缺乏对Windows操作系统自带输入法用户词库的研究。

尤其,对于适用对象更为广泛的Win10操作系统,其自带的中文输入法更是成为大量Win10用户的默认首选,但由于对Win10系统中用户输入信息的存储文件数据结构不明确,尚未有合适的方法用于对输入痕迹信息的提取。

因此,本文以Win10操作系统自带的中文输入法作为研究对象,采用基于数据流的逆向分析方法,对其相应词库文档结构及协议进行分析,发现数据的存储结构,从而提取用户输入痕迹信息。


一、用户输入信息存储结构分析

通过对Win10系统自带中文输入法程序运行进程的分析,发现与中文输入法相关的用户词库文件主要存储在

C:\Users\Administrator\AppData\Roaming\Microsoft\InputMethod\Chs

路径下,对所有文件的属性信息分析,发现其中文件名分别为ChsPinyinlH和ChsPinyinUDL的两个DAT文件,其属性信息会随着系统用户输入行为的发生而不断变化。但由于其是DAT类型文件,无法直接用常规方法获取记录信息。

因此,利用Winhex对这两个文件进行分析,如图1所示,发现存储的信息具有一定规律性,数据块之间存在明显分隔,并且在Unicode方式显示下,可以很明显发现文件名分别为ChsPinyinlH和ChsPinyinUDL的DAT文件中零散存储着系统用户之前输入的字词句信息,并且均以Unicode明码的方式保存在数据区中。

图1 用户输入信息存储区


进一步分析ChsPinyinlH.dat和ChsPinyinUDL.dat两文件,发现ChsPinyinlH.dat文件记录着系统用户的中文字词输入信息,而ChsPinyinUDL.dat文件记录着系统用户的中文短句输入信息。

由此可知,Win10中文输入法用户词库信息采用独有格式进行存储,但没有采用复杂的加密算法对其进行保护处理。

因此,依据中文输入法的拼音特性,构建基于输入数据流的逆向分析策略,对词条信息的内部存储数据结构进行分析。具体逆向测试策略如下:

策略1 初始化用户词库文件信息,分别选定一个单词和短句,用Win10中文输入法各输入一次,其目的是探察两个文件存储输入信息的初始位置。

策略2 将策略1所选的单词和短句,用Win10中文输入法重复输入一次,其目的是探察同一词句输入次数改变对存储信息的影响。

策略3 有别于策略2的选择,另选内容不同、字数一样的单词和短句,用Win10中文输入法各输入一次,其目的是探察词句内容的改变对已存储输入信息位置的影响,即获取单个词条存储信息需占用的总长度。

策略4 有别于之前所有策略的选择,再另选内容不同、字数不同的单词和短句,用Win10中文输入法各输入一次,其目的是探察词句字数的改变对存储信息的影响。同时,结合策略3和策略4对比,内容和字数的改变对存储位置的影响。
依据上述基于数据流的逆向测试策略,对两个DAT用户词库文件进行结构分析,发现ChsPinyinlH和ChsPinyinUDL两个DAT文件存储的输入记录信息数据起始位置分别是在文件偏移地址0x1400处和0x2400处,每条用户输入记录信息的存储长度都是固定的,占用60个字节。

同时,发现ChsPinyinlH.dat文件对用户每条输入行为信息的存储结构主要按如图2所示的固定格式进行存储。

其中关键信息主要在第一部分和第三部分的4个字节以及第四部分的24个字节,第一部分存储此条字词的字数,第三部分存储词条字词被输入的次数,第四部分则存储了此条字词的具体内容。

图2 ChsPinyinlH.dat文件记录每条输入信息的存储结构


而ChsPinyinUDL.dat文件对用户每条输入行为信息的存储结构主要按如图3所示的固定格式进行存储。其中关键信息主要在第二部分的2个字节和第四部分的48个字节,第二部分存储此条短句的字数,第四部分存储了此条短句的具体内容。

图3 ChsPinyinUDL.dat文件记录每条输入信息的存储结构

二、用户输入痕迹提取过程

基于上述分析的结论,对其进行具体实现,分析工具软件界面如图4所示。其功能主要包括用户输入信息的数据块检索、数据块结构的自解析、关键信息的提取及转换,如图5所示。

图4 用户输入痕迹信息分析工具界面

图5 主要功能模块

具体程序流程,如图6所示。首先,分别检索ChsPinyinlH和ChsPinyinUDL两个DAT格式用户词库文件中偏移地址在0x1400和0x2400之后的数据区域;然后,对该区域数据信息按特定长度进行分割,并对分割出的每条信息进行格式解析,从中提取用户输入词条字数、输入频次、词条内容等关键信息;最后,将提取出的信息进行编码转换并输出。

图6 Win10中文用户输入痕迹的提取流程

其中,中文输入法自学习用户词库信息格式解析及提取的功能则由parseChunk()函数完成,通过运行程序代码,可实现对Win10中文系统输入法自学习用户词库文件的自动解析,进而快速、完整地提取出用户所有的输入痕迹。同时,利用词云图方式对提取结果进行整理并呈现,如图7所示,可以明显发现很多如地名、机构、姓名、惯用语句等具有明确意义和指向性的关键词或短语,并且字体越大表示输入的频次越多。
另外,Win8作为微软公司开发的第一款Windows触屏操作系统,Win10延续了Win8的触控模式,其与Win8系统的自带输入法程序是一样的。因此通过实测,本文的提取方法依然适用于对Win8系统用户中文输入痕迹信息的提取。

三、结语

侦查人员在对电子设备的电子数据分析过程中,有效提取操作系统内自带输入法的用户词库信息,可得到系统用户的输入痕迹信息,便于掌握计算机用户的行为特征,拓展案件侦查线索的渠道。
内容页面Content
联系方式Contact
地 址:内蒙古乌海市海勃湾区
海北东街48-4
邮 编:016000 咨询热线:0473-2099000 服务投拆:138-4833-5527 传 真:0473-2099000 邮 箱:service@longhuasfjd.com
 
QQ在线咨询
售前咨询热线
0473-2099000
售后服务热线
13848335527
返回顶部