AmCache 到底记录了什么
这个配置单元位于 C:\Windows\appcompat\Programs\Amcache.hve,属于随 Windows 8 一同到来的应用兼容性基础设施(Windows 7 用一个名为 RecentFileCache.bcf 的文件完成同样的工作)。每个运行过的可执行文件都会留下一条记录:完整路径、二进制文件的 SHA-1 哈希、文件大小、时间戳、数字签名和发行商,以及来自 PE 头部的细节(例如链接时间——程序实际编译的时刻)。另有一些区块清点已安装的软件、驱动和设备:DeviceContainer 条目会连同首次连接时间一起记录 USB 设备。
这些都不是恶意软件。它是兼容性数据库在做诊断,也是 Windows 逐个程序应用兼容性修补的同一套机制。但恰恰是这种完整性,让 AmCache 成为整个系统上最丰富的运行历史痕迹:在事件响应中,它被例行用于证明某个程序在某个日期从某个磁盘运行过。浏览器历史只覆盖你的上网行为,而这个文件覆盖其余的一切。
- C:\Windows\appcompat\Programs\Amcache.hve — 配置单元本体,Windows 运行期间处于锁定状态
- Root\InventoryApplicationFile — 运行过的每个程序:路径、SHA-1、大小、发行商、链接时间
- Root\InventoryApplication — 兼容性子系统眼中的已安装软件
- Root\DeviceContainer — 带首次连接时间戳的 USB 设备
- Amcache.hve.LOG1 / .LOG2 — 保存同样记录副本的事务日志
删除它比听起来更难——也更没用
在运行中的系统里无法删除这个配置单元:注册表一直保持打开状态,而且 Windows 下次启动时反正会重建它。离线删除——从恢复环境,或从另一个系统用 reg load 加载该单元——可行且不会破坏任何东西,但几乎抹不掉痕迹。同样的运行历史还存活在 SYSTEM 单元里的 ShimCache(AppCompatCache)、C:\Windows\Prefetch 下带有各自运行时间戳的 Prefetch 文件、跟踪每应用资源使用的 SRUM 数据库、每个用户 NTUSER.DAT 里的 UserAssist 计数器,以及普通的跳转列表和 LNK 文件中。AmCache 只是六位证人之一,而不是整份案卷。
所以诚实的定位很重要:AmCache 只有管理员权限才能读取,现实的威胁模型是取证、事件响应,或事后拥有管理员权限翻查机器的人。对于日常防范所访问网站的窥探,浏览器卫生已经足够。而对于要出售或退役的机器,任何外科手术式的痕迹删除都比不上全新安装或整盘擦除——那是能一次性除掉全部六位证人的唯一答案。
常见问题与解答
如何查看我的 AmCache 记录?
从 C:\Windows\appcompat\Programs 复制该配置单元(文件被锁定,需要提升权限的命令行),再用 AmcacheParser 之类的工具解析,它会输出一张表格,列出每条记录的运行路径、哈希和时间戳。
可以安全删除 Amcache.hve 吗?
Windows 运行时不行——文件处于锁定状态。在恢复环境中可以删除,Windows 会重建新的;不会破坏任何东西,但同样的运行历史仍存留在 Prefetch、ShimCache 和 SRUM 中,因此这不是隐私解决方案。
继续阅读
联系我们: [email protected]