跳转至

Windows

与 Linux 服务器镜像侧重网络行为不同,取证比赛中的 Windows 检材更常考察使用痕迹、浏览器历史、恶意文件、聊天缓存与日志等内容。

因此需要熟练掌握文件提取、数据恢复、系统仿真、脚本处理与逆向分析等能力。

磁盘结构

从物理层面,一个磁盘通常可拆成以下层次:

磁盘组合 -> 单个磁盘 -> 盘面 (platter) -> 磁道 (track) -> 扇区 (sector)

文件占用磁盘空间时,基本单位不是字节而是簇。簇大小与磁盘规格有关:软盘每簇通常为 1 个扇区,硬盘每簇扇区数则取决于容量和分区格式,常见有 4、8、16、32、64 等。

Windows 平台最常见的文件系统如下:

  • FAT:分区由固定大小的簇组成,簇数受 16 位索引限制,理论上不超过 65536 个簇。
  • FAT32:结构与 FAT 类似,但入口扩展为 32 位,容量上限更高。
  • NTFS:以主文件表(MFT)为核心,小文件甚至可以直接驻留在 MFT 记录中。

信息提取与分析

比赛里最常用的两类图形化工具如下:

取证大师的优势在于广度。时间线、软件使用痕迹、浏览器与小程序等模块较全,自动取证结果通常能快速给出第一轮筛查线索。

取证大师主界面概览

火眼更适合补足数据库、备份文件和手机备份解析等细节。遇到 PC 与手机备份联动题时,往往比单纯文件浏览更直观。

火眼证据分析界面概览

系统仿真

系统仿真是指把镜像或对象计算机硬盘模拟为虚拟机,在可交互环境中直接检查系统状态、登录痕迹和应用行为。

火眼仿真常用于快速锁定系统版本、尝试绕过开机口令并调用 VMware 完成启动。

火眼仿真启动界面

成功拉起后,可以从用户视角核对桌面、最近文档、浏览器状态与可疑程序行为。

通过 VMware 启动仿真环境

知识整理

磁盘容量

首先需要理解 4K 对齐 的原理。传统机械硬盘的物理扇区一般为 512 字节,后来的高级格式磁盘多为 4096 字节扇区。由于 NTFS 默认分配单元通常也是 4096 字节,逻辑分区需要与 4K 扇区对齐以保证读写效率。

例(2019 美亚杯个人赛第 4 题):

题目中的磁盘容量问题

通过取证大师查看分区信息:

在取证大师中查看系统盘扇区数

可知 D 盘为系统盘,扇区数为 961099776。再确认逻辑扇区大小:

确认逻辑扇区大小为 512 字节

Text Only
(961099776 - 8) * 512 = 492083081216

这里需要先预留 4096 / 512 = 8 个扇区的对齐空间,再计算最终容量。

时间戳

数据库和日志中常见 Unix 时间戳,需要能在时间戳与标准时间间互相转换。

例(2019 美亚杯个人赛第 41 题):

题目中的时间戳问题

先在工具中确认标准时间:

在取证工具中确认标准时间

再用脚本转换为时间戳:

用于时间戳转换的脚本示意

Python
import time

time_str = "2019-10-31 15:22:31"
time_array = time.strptime(time_str, "%Y-%m-%d %H:%M:%S")
timestamp = int(time.mktime(time_array))

other_style_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(timestamp))
print(timestamp)
print(other_style_time)

转换结果示意如下:

时间戳转换结果

动态链接库

例(2019 美亚杯个人赛第 15 题):

动态链接库相关题目

镜像内直接追 DLL 调用链往往比较慢。更常见的思路是先提取可疑 exe 到本地环境,再配合进程监控工具观察其调用行为。

使用进程监控工具观察 DLL 调用