在信息化快速发展的时代,电子数据取证已成为刑事案件侦查的重要手段。Windows操作系统因其广泛应用而成为重点研究对象,尤其是与用户常用应用软件相关的取证分析。中文输入法的用户词库包含丰富的用户输入信息,如姓名、地址及谈话内容,这些信息为取证提供了独特的视角。本文将深入探讨如何通过技术手段提取和分析中文输入法的用户词库数据。
中文输入法用户词库的取证分析
中文输入法支持用户自定义词库,其中保存了用户的姓名、地址及谈话内容等关键信息。这些信息保存在特定的文件中,例如 ChsPinyinIH.dat
和 ChsPinyinUDL.dat
,其内容可以通过逆向分析进行提取。
逆向分析方法
通过对上述文件的结构分析,发现每个文件中的用户输入记录信息有固定的存储格式。具体来说,ChsPinyinIH.dat
文件记录中文字词的输入,而 ChsPinyinUDL.dat
文件则记录中文短句。利用Python编写的提取代码,可以轻松获取存储的输入信息。
ChsPinyinIH.dat
和 ChsPinyinUDL.dat
文件通常位于以下路径:
C:Users<用户名>AppDataRoamingMicrosoftInputMethodChs
在这个路径中,
<用户名>
是你的Windows账户名。你可以通过资源管理器进入这个路径,查看是否能找到这两个文件。如果你在找文件时遇到问题,可以尝试显示隐藏文件夹,因为AppData
文件夹是隐藏的。可以使用以下工具打开
ChsPinyinIH.dat
和ChsPinyinUDL.dat
文件,而不会显示乱码:
010 Editor:这是一款强大的十六进制编辑器,适合分析和编辑二进制文件。
HxD:另一款流行的十六进制编辑器,支持查看和编辑二进制文件。
Notepad++(搭配 Unicode 插件):可以打开文件并正确显示 Unicode 编码,但可能需要调整设置。
提取代码示例
以下是提取用户输入记录的Python代码示例:
# 提取中文短句
f = open("ChsPinyinUDL.dat","rb")
data = f.read()
data = data[9216:]
f.close()
i = 60
n=1
while True:
chunk = n*i
chunk_len = data[chunk+12:chunk+12+48]
print(chunk_len.decode("utf-16"))
n+=1
if chunk>=len(data):
break
# 提取中文词汇
f = open("ChsPinyinIH.dat","rb")
data = f.read()
data = data[5120:]
f.close()
i = 60
n=1
while True:
chunk = n*i
unicode_chunk = data[chunk+12:chunk+12+data[chunk]*2]
print(unicode_chunk.decode("utf-16"))
n+=1
if chunk>=len(data):
break
原文始发于微信公众号(云梦安全):电子取证新视角:解析Windows中文输入法数据
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论