目录
程序兼容性助手 (PCA:Program Compatibility Assistant)
5. 以下注册表键存储当前用户的所有程序列表,不管有没有应用兼容模式:
6. 以下注册表值存储无需 PCA 检查的应用程序, 这些程序包含具有 UAC 运行级别(管理员或受限用户)的标记。
应用程序兼容性缓存(Application Compatibility Cache / Shimcache)
(2) 在 Windows 2003 和 XP 64 位及更早版本中的文件大小。
(3) 应用程序的最近执行时间(LastModifiedTime $Standard_Information)
(5) 在 Windows XP 32 位上,还有个可执行文件最近更新时间戳(Last Update Time) 。
程序兼容性助手 (PCA:Program Compatibility Assistant)
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags]
1. 简介
程序兼容性助手 (PCA) 是 Windows Vista® 和 Windows Server® 2008 中的一项新功能,
用于监视由用户安装和运行的程序,并检测已知兼容性问题,提示用户使用推荐的设置重新安装,用户也可忽略提示继续运行。
旨在保持对现有桌面应用程序对新版本的 Windows 操作系统(如 Shimcache 和 Amcache 工件)的支持。
PCA 仅包含以下的信息:
* 执行时具有图形界面的程序
* 已安装的程序
* 从可移植(portable)可执行文件执行的程序
* 作为 GUI 程序执行的命令行程序(例如,通过 Windows 资源管理器双击 CLI 可执行文件)
PCA 识别:
* 由版本不匹配导致的程序安装错误
* 由于已弃用的二进制文件
* 由于用户帐户控制 (UAC) 设置而导致的运行时问题
PCA 链接服务名称:
PcaSvc
可执行文件的路径:
C:\Windows\system32\svchost.exe -k LocalSystemNetworkRestricted
2. 文件存储位置
PCA 存储的信息分为 3 个基于文本的文件:
(1) PcaAppLaunchDic.txt
从取证的角度来看,它是最有价值的文件,也是程序执行的可靠来源。
每行一个条目,包含可执行文件的完整路径和以 UTC 格式的执行时间戳(在竖线分隔的字符串中)。
例: %SystemRoot%\FOLDER\executable.exe\|2023-05-25 01:20:30.123.
(2) PcaGeneralDb0.txt and PcaGeneralDb1.txt:
条目少于 PcaAppLaunchDic.txt 中的条目,大多数条目似乎与执行错误时退出代码(非 0x0 )相关。
每行一个条目,在竖线分隔的字符串中包含以下信息:
* 执行时间戳(Execution timestamp)
* 执行状态(Execution status)
* 可执行程序完整路径(Full path of the executable)
* 可执行文件的描述及其供应商名称(Description of the executable and its vendor name)
* 可执行文件版本(File version)
* 可执行程序 ID, 在 Amcache 注册表配置单元(InventoryApplicationFile 键)中引用。
* 退出代码(Exit code of the execution)
3. 以下注册表键存储一些已知兼容性问题的程序数据库。
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store]
4. 以下注册表键存储程序所应用的兼容性方案:
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
其中包括程序完整路径的键名称和正在应用的兼容模式名称的字符串值。
参考:
https://www.jianshu.com/p/e413455729d0#Windows 兼容模式具体项
系统将把它复制到 HKEY_LOCAL_MACHINE 下,以应用到所有用户。
但在显示 PCA 对话框之前自动应用 ELEVATECREATEPROCESS (提升(权限?)创建进程)兼容模式的情况除外。
5. 以下注册表键存储当前用户的所有程序列表,不管有没有应用兼容模式:
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted]