Amcache 记录了什么
Amcache.hve 位于 C:\Windows\AppCompat\Programs 下,是应用兼容性组件维护的注册表配置单元,记录了本机出现过的可执行文件与安装信息,常见字段包含文件路径、文件大小、产品名称与文件的 SHA1 摘要。它在调查中的主要价值是“某程序曾经出现在这台机器上”,并给出可与其他样本库比对的哈希。措辞上要精确:Amcache 反映的是程序出现(被登记)的事实,不能直接当作执行证据,执行痕迹需要结合 Prefetch、进程创建日志与用户活动记录。
基本信息
| 适用平台 | Windows 7 及以上(Win7 中的结构与 Win8+ 差异较大) |
|---|---|
| 文件位置 | C:\Windows\AppCompat\Programs\Amcache.hve |
| 主要分支 | Root\InventoryApplicationFile(文件条目)、Root\InventoryApplication(安装条目)等 |
| 关键字段 | 文件路径、SHA1、产品与发布者信息、键的最后写入时间 |
| 解析工具 | AmcacheParser(Windows);Linux 侧可用注册表配置单元读取类工具处理副本 |
典型使用场景
- 确认某个可疑程序的路径与哈希,用于跨主机与样本库比对
- 为“程序曾出现在该主机”提供路径级证据,补充 Prefetch 与事件日志
- 发现从临时目录或用户目录运行的可执行文件条目
- 与安装记录(Uninstall 键)互相印证,区分安装程序与绿色程序
- 为事件时间线提供条目的最后写入时间作为参考锚点
解析与筛选
解析与筛选
# Windows 侧:导出为 CSV 后筛选
AmcacheParser.exe -f Amcache.hve --csv out/ --csvf amcache.csv
# 关注位于用户目录与临时目录的条目
find out -name '*.csv' -exec grep -i -E '\\\\Users\\\\|\\\\Temp\\\\|\\\\ProgramData\\\\' {} + | head -20
# 关注带 SHA1 的条目,用于样本库比对
grep -i -E ';[0-9a-f]{40};' out/amcache.csv | head -10
# 离线分析副本:先复制 Amcache.hve(含 .LOG 文件)再解析,避免影响主机字段读法
| 字段 | 含义 | 判读要点 |
|---|---|---|
| 文件路径 | 程序出现的完整位置 | 用户目录、临时目录优先深挖 |
| SHA1 | 文件摘要 | 可与样本库比对,但并非所有条目都有 |
| 产品与发布者 | 登记的程序信息 | 可被伪造,仅作辅助 |
| 最后写入时间 | 键的更新时间 | 反映登记时间,不等于首次运行时间 |
| 条目类型 | 文件条目或安装条目 | 两类信息的来源与含义不同,分开统计 |
报告措辞要用“该程序曾出现在这台主机上”,而不是“在该主机上运行过”:前者有 Amcache 支撑,后者需要执行痕迹佐证。
Amcache.hve 属于注册表配置单元,解析要离线进行:先复制文件(含同目录的日志文件)再分析,不要在生产主机上原地加载修改。