Shimcache(也称为AppCompatCache)是Windows的一项应用程序兼容性功能。Windows用它来判断某个程序是否需要兼容性修复,但在此过程中,它也保留了一份已处理程序的记录,这使它成为一种广为人知的执行痕迹。与Amcache不同,它不是磁盘上的文件:它存在于注册表中,位于 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache.
每个条目主要保存完整的文件路径和文件的最后修改日期,按最近优先的顺序排列,在某些Windows版本上还有一个标志,显示该文件是否被实际执行过。这已足以证明某个特定程序曾存在于这台电脑上,这也是调查人员会读取它的原因。清理它会清除这一痕迹。
| 字段 | 揭示的信息 | PrivaZer的处理方式 |
|---|---|---|
| 完整文件路径和名称 | 程序的存储位置,即使所在驱动器现已不存在 | 已删除 |
| 文件最后修改日期 | 程序文件最后一次更改的时间 | 已删除 |
| 执行标志 | 该文件是否被实际运行过(部分版本) | 已删除 |
| 顺序和位置 | 文件被处理的大致顺序 | 已删除 |
| 文件大小 | 程序的大小(较旧格式) | 已删除 |
Shimcache每个条目存储的信息比Amcache少:没有SHA-1哈希值,也没有发布者名称。但路径加上文件的最后修改日期仍然是一个可靠的存在性证据,它甚至可以列出那些被浏览过但从未启动的程序。PrivaZer会删除这些条目,使这一痕迹不再留存于注册表中。
为了防止这种情况发生,PrivaZer不仅会清除注册表值,还会使用Windows自身使用的相同例程刷新内存中的缓存副本:ShimFlushCache(位于apphelp.dll中)和BaseFlushAppcompatCache(位于kernel32.dll中)。刷新实时副本后,就不会再有过期的缓存在关机时被写回。由于AppCompatCache位于实时的SYSTEM配置单元下,因此需要管理员权限。
会。PrivaZer会在扫描过程中检测并清除AppCompatCache条目,也可以单独针对它们进行清理。随后,它会刷新内存中的缓存副本(通过ShimFlushCache和BaseFlushAppcompatCache),以确保清理效果得以保持,而不是在您下次关机时重新出现。需要管理员权限。
会。移除程序并删除其文件不会清除其AppCompatCache条目。即使该程序本身已不复存在,其路径和最后修改日期依然可能保留下来,证明该程序曾存在于这台电脑上。这正是调查人员会寻找的那类残留,而清理Shimcache正是为了清除它。
安全。AppCompatCache是Windows为兼容性而维护的一个缓存,并会自动重建。清除它不会触及您已安装的程序、文件或系统稳定性。此后您继续使用电脑时,Windows只会重新开始填充该缓存。
清理后处理的程序会重新累积新条目,这是正常现象:该缓存是一份持续更新的记录。清理只是删除了此前的历史痕迹,并且由于PrivaZer会刷新内存中的副本,旧数据不会在下次关机时被写回。定期运行PrivaZer可以让这份痕迹保持简短。
它们是两种独立的兼容性痕迹,通常会一起清理。Shimcache(AppCompatCache)存在于注册表中,主要存储路径和最后修改日期,并在关机时刷新写入磁盘。Amcache是一个配置单元文件(Amcache.hve),包含更为丰富的每个程序的数据,包括可执行文件的SHA-1哈希值。只清理其中一项会使另一个痕迹保持完整,因此两者都值得清理。
关于Amcache方面及其配置单元包含的内容,请参见: 如何清理Windows上的Amcache.