【问题标题】:Hang when launching digitally signed executable启动数字签名的可执行文件时挂起
【发布时间】:2015-02-05 17:10:01
【问题描述】:

我们在 2 台 PC 上运行一个经过数字签名的 120 Mb 可执行文件时遇到了一个奇怪的问题。

如果用户启动经过数字签名的 .exe - 那么启动主机(例如 Explorer 或 cmd.exe)将进入无限(无休止)循环,不断打开/关闭 HKLM\System\CurrentControlSet\Control\Cryptography\Providers 和 HKLM\System \CurrentControlSet\Control\Cryptography\Configuration 注册表项。调用堆栈表明主机进程位于 CreateProcess 函数内(更具体地说 - 在 NtCreateUserProcess 内),并且目标进程是“部分创建的”。例如。它在任务管理器中可见,但在进程监视器中没有“进程创建”事件,任何打开目标进程的尝试都会挂起试图打开它的工具。

Explorer/CMD 的启动过程如下:

  1. 检查 HKLM\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\Image 文件执行选项(不存在)
  2. 按 32 Kb 块读取整个 .exe
  3. 读取 HKLM\System\CurrentControlSet\Control\Cryptography\ 下的注册表项并枚举 HKLM+HCU\SOFTWARE\MICROSOFT\SystemCertificates\Disallowed\Certificates
  4. 在结束枚举 HKU.DEFAULT\SOFTWARE\Policies\Microsoft\SystemCertificates\Disallowed\Certificates 后立即开始读取上述注册表项的无限循环

数字证书是 COMODO 颁发的用于代码签名的常用 SHA1-RSA 证书。签名的可执行文件带有时间戳。问题不在于特定的可执行文件,因为使用此证书签名的所有其他可执行文件都有相同的问题。其他签名的可执行文件似乎运行正常。

我们尝试过的:

  1. 文件哈希没问题。
  2. 两台电脑都安装了 MalwareBytes。
  3. 禁用防病毒和防火墙并不能解决问题。
  4. 安全模式解决了问题。
  5. 证书正常,未过期,未撤销,certutil -f -urlfetch -verify 未发现任何问题。
  6. 证书的哈希值未列在上述各种 Disallowed\Certificates 注册表项的枚举中。
  7. 卸载 MS14-066/KB2992611 没有帮助。

有什么想法吗?

【问题讨论】:

    标签: windows certificate registry digital-signature freeze


    【解决方案1】:

    我们找到了原因。

    这确实是 Malwarebytes 工具的问题。它的驱动程序(mbamchameleon.sys)注入到 CreateProcess 调用中,并在检查某些已签名可执行文件的数字签名期间导致无限循环。

    https://support.eurekalog.com/index.php?/Knowledgebase/Article/View/67/4/installer-hangs-on-launch

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-03
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      相关资源
      最近更新 更多