引言
当今信息化时代下,存在于各类计算机设备中的数据信息已成为越来越多刑事案件侦查的线索来源。Windows操作系统作为当今全球计算机使用率最高的操作系统,针对Windows操作系统的电子数据取证一直是电子数据取证领域研究的重点之一例,其中针对Windows操作系统中用户常用应用软件的行为取证分析,已成为近年来公安机关取证人员获取案件侦查线索的途径之—。
中文输入法作为Windows中文操作系统必备的一款应用程序,不仅支持中文文字编码和输入的功能,还具有自定义、自学习用户词库功能,这一功能将系统用户常用或者符合用户用语习惯的字词句以一种特定的结构形式存储成独立的词库数据集文件,以方便后期提高输入效率。
这类用户词库文件留存了大量的与系统用户直接相关的输入痕迹信息,如目标姓名、地址、谈话内容等关键词,都能在输入法用户词库中有所体现,但用户词库中所存储的这些信息往往被取证人员忽略。
虽然,目前已有研究者通过对用户输入行为日志的研究来改善输入法软件性能和提升用户体验,或者利用中文拼音输入法数据对方言词汇进行自动识别,也有研究者对中文输入法用户词库的提取进行研究,但其研究对象主要集中于第三方输入法,缺乏对Windows操作系统自带输入法用户词库的研究。
尤其,对于适用对象更为广泛的Win10/11操作系统,其自带的中文输入法更是成为大量Win10用户的默认首选,但由于对Win10系统中用户输入信息的存储文件数据结构不明确,尚未有合适的方法用于对输入痕迹信息的提取。
因此,本文以Win10操作系统自带的中文输入法作为研究对象,采用基于数据流的逆向分析方法,对其相应词库文档结构及协议进行分析,发现数据的存储结构,从而提取用户输入痕迹信息。
用户输入信息存储结构分析
通过对Win10系统自带中文输入法程序运行进程的分析,发现与中文输入法相关的用户词库文件主要存储在以下路径:
C:\Users\<用户名>\AppData\Roaming\Microsoft\InputMethod\Chs\
在这个路径中,<用户名>是你的Windows账户名。你可以通过资源管理器进入这个路径,查看是否能找到这两个文件。如果你在找文件时遇到问题,可以尝试显示隐藏文件夹,因为 AppData
文件夹是隐藏的。
可以使用16进制编辑器打开 ChsPinyinIH.dat
和 ChsPinyinUDL.dat
文件
提取代码示例
可以通过代码快速、完整地提取出用户所有的输入痕迹。同时,利用词云图方式对提取结果进行整理并呈现
以下是提取用户输入记录的Python代码示例:
import os
# 提取中文词汇
with open(r"ChsPinyinUDL.dat", "rb") as f: # 使用完整的文件路径
data = f.read()
data = data[5120:] # 跳过前5120字节
# 第一部分
i = 60
n = 1
while True:
chunk = n * i
if chunk + 12 + 48 > len(data): # 检查下一个块是否超出数据长度
break
chunk_len = data[chunk + 12:chunk + 12 + 48]
print(chunk_len.decode("utf-16", errors="ignore")) # 忽略解码错误
n += 1
# 第二部分
i = 60
n = 1
while True:
chunk = n * i
if chunk + 12 + data[chunk] * 2 > len(data): # 检查下一个块是否超出数据长度
break
unicode_chunk = data[chunk + 12:chunk + 12 + data[chunk] * 2]
print(unicode_chunk.decode("utf-16", errors="ignore")) # 忽略解码错误
n += 1
运行后成功显示出常用词库,可以明显发现很多如地名、机构、姓名、惯用语句等具有明确意义和指向性的关键词或短语
结语
侦查人员在对电子设备的电子数据分析过程中,有效提取操作系统内自带输入法的用户词库信息,可得到系统用户的输入痕迹信息,便于掌握计算机用户的行为特征,拓展案件侦查线索的渠道。