Windows 注册表是 Windows 系统中非常重要的配置数据库,里面保存了系统、硬件、用户、软件、服务、网络、外接设备、启动项等大量信息。微软官方将其描述为一个分层数据库,数据以树状结构组织,每个节点叫 Key,Key 下面可以有子 Key 和 Value。对取证来说,注册表经常可以用来还原“谁用过这台电脑、插过什么设备、运行过什么程序、配置过什么启动项、访问过什么文件夹”。(微软官方说明Microsoft Learn)
一、注册表取证能查什么
注册表取证主要用于分析这些问题:
1. 这台电脑有哪些用户?
2. 用户最后一次登录或使用痕迹是什么?
3. 是否插入过 U 盘、移动硬盘、手机等外接设备?
4. 是否运行过某些程序?
5. 是否存在恶意启动项、服务、计划任务?
6. 用户是否访问过某些文件夹或网络路径?
7. 系统时区、计算机名、网络配置是什么?
8. 是否存在远控、后门、持久化配置?
注册表本身不能解决所有问题,它更适合和事件日志、Prefetch、LNK、Jump Lists、浏览器记录、MFT、UsnJrnl 等证据一起交叉验证。
二、注册表的基本结构
注册表可以简单理解成一个树状数据库:
Hive 注册表配置单元
Key 键,类似文件夹
Subkey 子键
Value 值,类似具体配置项
Data 值里面保存的数据
例如:
HKEY_LOCAL_MACHINE
└── SOFTWARE
└── Microsoft
└── Windows
└── CurrentVersion
└── Run
其中 Run 这个键下面的值,可能记录开机自启动程序。
微软官方文档中中说明,Hive 是注册表中 Key、Subkey 和 Value 的逻辑组合,并且有对应的支持文件。 这些 Hive 会在系统启动或用户登录时加载到内存中。(Microsoft Learn)
三、常见注册表 Hive 文件
在做取证时,如果不使用软件进行仿真,那我们可以尝试从镜像中提取注册表 Hive 文件进行分析。
1. 系统级 Hive
路径一般在:
C:\Windows\System32\Config\
常见文件:
| Hive 文件 | 主要作用 |
|---|---|
SYSTEM |
硬件、服务、驱动、USB 设备、ControlSet、时区等 |
SOFTWARE |
已安装软件、系统配置、部分启动项 |
SAM |
本地用户、组信息 |
SECURITY |
安全策略、权限、部分凭据相关信息 |
DEFAULT |
默认用户配置 |
这些系统 Hive 文件通常位于 C:\Windows\System32\Config,用户相关 Hive 则位于用户配置文件目录中。微软文档也说明,用户配置文件 Hive 会在用户登录时创建并加载到 HKEY_USERS 下。
2. 用户级 Hive
每个用户都有自己的注册表文件。
常见位置:
C:\Users\用户名\NTUSER.DAT
C:\Users\用户名\AppData\Local\Microsoft\Windows\UsrClass.dat
常见用途:
| Hive 文件 | 主要作用 |
|---|---|
NTUSER.DAT |
当前用户的软件设置、Recent、UserAssist、TypedPaths、部分 MRU 记录 |
UsrClass.dat |
ShellBags、用户级 COM、资源管理器相关痕迹 |
简单理解:
SYSTEM / SOFTWARE / SAM / SECURITY 偏系统层面
NTUSER.DAT / UsrClass.dat 偏用户行为层面
四、注册表取证的基本流程
第一步:从镜像中提取 Hive
使用镜像解析软件导出Hive文件。 常见需要导出的文件:
C:\Windows\System32\Config\SYSTEM
C:\Windows\System32\Config\SOFTWARE
C:\Windows\System32\Config\SAM
C:\Windows\System32\Config\SECURITY
C:\Windows\System32\Config\DEFAULT
C:\Users\用户名\NTUSER.DAT
C:\Users\用户名\AppData\Local\Microsoft\Windows\UsrClass.dat
C:\Windows\AppCompat\Programs\Amcache.hve
---
### 第二步:使用工具打开 Hive
常用工具:
| 工具 | 用途 |
| ------------------- | ----------------------------------------------------- |
| Registry Explorer | 图形化查看注册表 Hive,支持搜索、多 Hive 分析和插件 |
| RECmd | 命令行批量解析注册表 |
| RegRipper | 使用插件批量提取注册表取证信息 |
| KAPE | 快速采集和解析 Windows 取证痕迹 |
| FTK Imager | 从镜像中导出 Hive 文件 |
| Autopsy | 综合分析镜像中的系统痕迹 |
---
### 第三步:注意事务日志
注册表 Hive 旁边经常会有这些文件:
```text
SYSTEM.LOG1
SYSTEM.LOG2
SOFTWARE.LOG1
SOFTWARE.LOG2
NTUSER.DAT.LOG1
NTUSER.DAT.LOG2
这些是注册表事务日志,可能包含还没有完全写入 Hive 主文件的数据。做取证时,不应只看单独的 Hive 文件,还要考虑 .LOG1、.LOG2。
注:RegRipper 不会自动处理 Hive transaction logs,如果需要纳入这些数据,需要先进行合并或使用支持 replay 的工具。(RegRipper3.0)
五、核心注册表痕迹
1. 查看当前 ControlSet
分析 SYSTEM Hive 时,经常会看到:
ControlSet001
ControlSet002
Select
重点看:
HKLM\SYSTEM\Select
常见值:
Current
Default
LastKnownGood
Failed
如果:
Current = 1
那么当前系统使用的一般是:
ControlSet001
如果:
Current = 2
那么当前系统使用的一般是:
ControlSet002
但在离线分析 Hive 时,更严谨的做法是先看 Select,再确定真正对应的 ControlSet00x。
2. 计算机名
位置:
SYSTEM\ControlSet00x\Control\ComputerName\ComputerName
关注值:
ComputerName
作用:
确认检材主机名称
关联事件日志中的主机名
关联网络连接、域环境、共享访问记录
3. 系统时区
位置:
SYSTEM\ControlSet00x\Control\TimeZoneInformation
关注值:
TimeZoneKeyName
Bias
ActiveTimeBias
作用:
判断系统时间使用的时区
校正事件日志、文件时间、浏览器时间
避免时间线分析错误
注:有时候,计算机中的时间需要依靠时区转换
4. 本地用户信息
主要 Hive:
SAM
常见位置:
SAM\Domains\Account\Users
SAM\Domains\Account\Users\Names
可分析内容:
本地用户列表
用户 RID
账户创建时间
最后登录时间
是否禁用
用户组关系
取证问题:
是否创建了异常用户?
是否存在隐藏账户?
某个用户是否属于管理员组?
5. USB 设备插入痕迹
主要 Hive:
SYSTEM
SOFTWARE
常见位置:
SYSTEM\ControlSet00x\Enum\USBSTOR
SYSTEM\ControlSet00x\Enum\USB
SYSTEM\MountedDevices
SOFTWARE\Microsoft\Windows Portable Devices\Devices
可分析内容:
U盘品牌
设备类型
设备序列号
设备 VID / PID
卷标
曾经分配的盘符
Eg:
SYSTEM\ControlSet001\Enum\USBSTOR
可能看到类似:
Disk&Ven_Kingston&Prod_DataTraveler_3.0
这说明系统曾识别过一个 Kingston DataTraveler 设备。
USB 设备、Mounted Devices、服务、时区、启动项、最近访问文档、ShellBags 等都属于注册表取证中的常见关键证据类型。(belkasoft.com)
6. 盘符分配记录
位置:
SYSTEM\MountedDevices
常见值:
\DosDevices\C:
\DosDevices\D:
\DosDevices\E:
\??\Volume{GUID}
作用:
判断某个 U 盘曾经被分配为什么盘符
关联 LNK 文件中的盘符路径
关联用户访问文件的路径
分析示例:
USBSTOR 证明插过某个 U 盘;
MountedDevices 证明它曾经是 E: 盘;
LNK 证明用户打开过 E:\材料\名单.xlsx;
三者结合,才能更有说服力。
7. 程序运行痕迹:UserAssist
主要 Hive:
NTUSER.DAT
位置:
Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist
作用:
记录用户通过图形界面运行过的部分程序
记录运行次数
记录最近运行时间
注意:
UserAssist 通常使用 ROT13 编码显示程序路径
命令行直接运行的程序不一定会出现在 UserAssist 中
例如 ROT13 后:
P:\Jvaqbjf\Flfgrz32\pnyp.rkr
解码后就是:
C:\Windows\System32\calc.exe
UserAssist、ShellBags、外接设备、MRU 等都是 Windows 注册表取证中常见的用户行为痕迹。(详细可以参考这一个教程 YouTube)
8. 程序执行痕迹:ShimCache / AppCompatCache
主要 Hive:
SYSTEM
位置:
SYSTEM\ControlSet00x\Control\Session Manager\AppCompatCache
作用:
辅助判断某些程序是否曾经存在或运行过
可用于恶意程序排查
注意:
不同 Windows 版本解析方式不同
不应单独依赖 ShimCache 判断程序一定执行过
最好结合 Prefetch、Amcache、事件日志 4688、SRUM 等一起判断
9. 程序执行痕迹:Amcache
文件位置:
C:\Windows\AppCompat\Programs\Amcache.hve
常见价值:
程序路径
文件名
部分哈希信息
文件大小
程序首次出现或执行相关时间
分析问题:
是否出现过可疑 exe?
程序路径在哪里?
程序是否来自临时目录、下载目录、U盘?
可疑路径示例:
C:\Users\Public\
C:\ProgramData\
C:\Users\用户名\AppData\Roaming\
C:\Users\用户名\AppData\Local\Temp\
E:\
10. 开机启动项
常见位置:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
对应 Hive:
SOFTWARE
NTUSER.DAT
重点看:
值名称
程序路径
启动参数
文件创建时间
是否伪装成系统程序
可疑示例:
WindowsUpdate = C:\ProgramData\update.exe
SecurityHealth = C:\Users\Public\svchost.exe
OneDriveUpdate = powershell -w hidden -enc xxxxx
11. 服务持久化
位置:
SYSTEM\ControlSet00x\Services
重点字段:
ImagePath
Start
Type
DisplayName
Description
ObjectName
常见 Start 值含义:
2 自动启动
3 手动启动
4 禁用
可疑服务特征:
服务名像系统服务,但路径不在 System32
ImagePath 指向用户目录或 ProgramData
描述为空
创建时间接近异常登录时间
使用 rundll32、powershell、cmd 启动
12. 最近访问路径:TypedPaths
主要 Hive:
NTUSER.DAT
位置:
Software\Microsoft\Windows\CurrentVersion\Explorer\TypedPaths
作用:
记录用户在资源管理器地址栏手动输入过的路径
可能出现:
E:\资料
\\192.168.1.10\share
C:\Users\test\Desktop
ftp://192.168.1.23
取证意义:
判断用户是否主动访问过某个本地目录
判断用户是否访问过网络共享路径
判断是否访问过 U 盘目录
13. 最近打开文件:RecentDocs / MRU
主要 Hive:
NTUSER.DAT
常见位置:
Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs
Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSavePidlMRU
Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU
作用:
记录用户最近打开、保存、访问过的文件或路径
适合分析:
用户是否打开过某个文档
用户是否从 U 盘打开过文件
用户是否保存过某类文件
用户是否访问过某个可疑目录
14. ShellBags 文件夹访问痕迹
主要 Hive:
NTUSER.DAT
UsrClass.dat
常见位置:
Software\Microsoft\Windows\Shell
Software\Microsoft\Windows\ShellNoRoam
Local Settings\Software\Microsoft\Windows\Shell
作用:
记录用户通过资源管理器访问过的文件夹显示信息
可证明某个文件夹曾经被用户浏览过
即使文件夹已经删除,也可能留下访问痕迹
适合判断:
是否浏览过 U 盘中的某个目录
是否访问过网络共享文件夹
是否打开过隐藏较深的目录
是否进入过可疑程序目录
ShellBags 常用于分析用户是否看过某些文件夹,尤其适合和 LNK、Jump Lists、MFT、USBSTOR 一起使用。
这样可以大致推断出用户在本机进行文件操作的流程。
15. 网络配置和连接痕迹
主要 Hive:
SYSTEM
SOFTWARE
常见位置:
SYSTEM\ControlSet00x\Services\Tcpip\Parameters\Interfaces
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Signatures
可分析内容:
网卡信息
IP 地址
DNS 配置
网关
连接过的网络名称
网络类型
首次连接时间
最后连接时间
适合场景:
确认主机所在网络环境
关联入侵时间段的网络配置
判断是否连接过某个 Wi-Fi 或局域网
六、注册表时间分析
注册表取证中最重要的时间概念是:
Key LastWrite Time
也就是注册表键最后一次被修改的时间。
需要注意:
1. 注册表 Key 有 LastWrite 时间
2. 单个 Value 通常没有独立 LastWrite 时间
3. LastWrite 只能说明这个 Key 被修改过
4. 不能直接证明某个 Value 在该时间被修改
5. 要结合上下文和其他证据判断
例如:
Run 键的 LastWrite 时间是 2026-04-20 22:10:15
这只能说明:Run 这个键在该时间附近发生过变化,不能直接说:某个具体启动项一定是在这个时间创建的。
七、取证机直接加载 Hive 分析
Windows支持用户使用 reg load 加载离线 Hive。
例如加载 SYSTEM:
reg load HKLM\OfflineSYSTEM C:\Case\Hives\SYSTEM
查看内容:
reg query HKLM\OfflineSYSTEM\Select
卸载:
reg unload HKLM\OfflineSYSTEM
加载 NTUSER.DAT:
reg load HKU\OfflineUser C:\Case\Users\test\NTUSER.DAT
查看 UserAssist:
reg query "HKU\OfflineUser\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist"
卸载:
reg unload HKU\OfflineUser
注:正式司法取证中更推荐用 Registry Explorer、RECmd、RegRipper 等离线分析工具,避免在取证机的注册表中产生混淆。
十、For Beginner 写给初学者
注册表取证不要死记路径,要围绕问题去查。
查用户 SAM
查计算机名 SYSTEM
查时区 SYSTEM
查 USB SYSTEM + SOFTWARE
查盘符 SYSTEM\MountedDevices
查启动项 SOFTWARE + NTUSER.DAT
查服务 SYSTEM\Services
查用户行为 NTUSER.DAT
查文件夹访问 UsrClass.dat / ShellBags
查程序痕迹 UserAssist / ShimCache / Amcache
最重要的分析原则:
1. 优先分析镜像中的 Hive
2. 关注 Key 的 LastWrite 时间
3. 注意事务日志 LOG1 / LOG2
4. 区分系统级 Hive 和用户级 Hive
5. 不用单一注册表项直接下结论
6. 必须和日志、文件系统、快捷方式、Prefetch 等证据交叉验证
注册表取证的价值在于,它能把“系统配置”和“用户行为”连接起来。真正写报告时,不是简单说“我找到了某个键”,而是要说明这个键证明了什么、和哪些证据互相印证、能支持什么结论。