启动经过数字签名的可执行文件时挂起

时间:2014-12-08 04:15:13

标签: windows certificate registry digital-signature freeze

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

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

Explorer / CMD的启动过程如下:

  1. 检查HKLM \ SOFTWARE \ MICROSOFT \ WINDOWS NT \ CURRENTVERSION \图像文件执行选项(不存在)
  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
  5. 的枚举后,立即开始读取上述注册表项的无限循环

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

    我们尝试了什么:

    1. 文件哈希是可以的。
    2. 两台PC都安装了MalwareBytes。
    3. 禁用防病毒和防火墙无法解决问题。
    4. 安全模式解决问题。
    5. 证书正常,未过期,未撤销,certutil -f -urlfetch -verify未发现任何问题。
    6. 证书的哈希未在上述各种Disallowed \ Certificates注册表项的枚举中列出。
    7. 卸载MS14-066 / KB2992611无济于事。
    8. 有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我们找到了原因。

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

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