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



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

如果用户启动数字签名.exe - 则启动主机(例如资源管理器或cmd.exe(将进入无限(无休止(循环,不断打开/关闭HKLM\系统\当前控制集\控制\加密\提供程序和HKLM\系统\当前控制集\控制\密码学\配置注册表项。调用堆栈指示主机进程位于 CreateProcess 函数中(更具体地说 - 在 NtCreateUserProcess 内部(,并且目标进程是"部分创建"的。例如,它在任务管理器中可见,但在进程监视器中没有"进程已创建"事件,任何打开目标进程的尝试都将挂起尝试打开它的工具。

资源管理器/CMD的启动过程是这样的:

  1. 检查 HKLM\软件\MICROSOFT\WINDOWS NT\CURRENTVERSION\Image File Execution 选项(不存在(
  2. 读取整个.exe 32 Kb 块
  3. 读取 HKLM\系统\当前控制集\控制\加密\ 下的注册表项,并枚举 HKLM+HCU\软件\MICROSOFT\系统证书\不允许\证书
  4. 读取上述注册表项的无休止循环在结束 HKU 枚举后立即开始。默认\软件\策略\Microsoft\系统证书\不允许\证书

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

我们尝试过什么:

  1. 文件哈希正常。
  2. 两台PC都安装了MalwareBytes。
  3. 禁用防病毒和防火墙并不能解决问题。
  4. 安全模式解决了这个问题。
  5. 证书正常,未
  6. 过期,未吊销,证书util -f -urlfetch -verify 未发现任何问题。
  7. 证书的
  8. 哈希未在上面提到的各种不允许\证书注册表项的枚举中列出。
  9. 卸载 MS14-066/KB2992611 无济于事。

有什么想法吗?

我们找到了原因。

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

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

最新更新