You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Process Monitor与免注册COM:运行时未访问manifest文件原因查询

免注册COM场景下未观测到manifest文件访问的核心原因如下:

  1. manifest读取发生在进程启动阶段,而非CoCreateInstance调用阶段
    Windows PE加载器会在程序代码执行(包括main函数)之前就完成manifest的解析工作:
  • 若使用外部manifest,加载器在进程初始化阶段就会发起CreateFile读取对应manifest文件,你在CoCreateInstance调用前后过滤事件自然捕获不到,该操作发生在你业务代码运行之前
  • 若使用嵌入manifest,manifest直接存储在exe的资源段中,不需要额外的磁盘文件访问,自然不会出现带manifest后缀的CreateFile事件
  1. 外部manifest命名或优先级不符合要求
  • 外部manifest必须严格和可执行文件同名,格式为[你的程序名].exe.manifest,任何拼写错误都会导致加载器直接跳过外部manifest
  • 如果你用Visual Studio等IDE编译,默认配置会自动向exe嵌入默认manifest,Windows默认优先使用嵌入的manifest,外部manifest会被完全忽略,自然不会产生外部文件访问记录

排查建议

  • 调整procmon的监控时机:在启动测试程序之前就开启procmon,过滤进程名而非PID,即可捕获到进程启动阶段的manifest读取操作
  • 确认manifest中正确添加了免注册COM对应的assemblyIdentity、file、comClass节点,否则就算manifest被正常加载,COM运行时还是会走注册表检索逻辑,出现你观测到的RegOpenKey返回NAME NOT FOUND的情况

内容的提问来源于stack exchange,提问作者manuell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 21:36:04