"0x800700C1: 不是有效的 Win32 应用"创建 Windows 8、 Windows Server 2012、 Windows 7 中或 Windows Server 2008 R2 中的某个文件的 AppLocker 哈希规则时出错

文章翻译 文章翻译
文章编号: 2749690 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

假设您尝试创建一个 AppLocker 哈希规则运行下列操作系统之一的计算机上的文件:
  • Windows 8
  • Windows Server 2012
  • 已安装了安全更新的 Windows 7 MS12-024
  • 已安装了安全更新的 Windows Server 2008 R2 MS12-024
不过,您不能创建该规则,并且您会收到以下错误消息:
0x800700C1: 不是有效 Win32 应用程序

原因

由于 Windows 验证码签名验证函数现在验证可移植可执行 (PE) 文件,则会出现此问题。PE 文件都被视为无符号,如果满足下列条件之一为真:
  • Windows 可以确定不符合验证码规范文件中的内容。此条件适用于某些第三方安装程序。
  • 其他内容添加到该文件后应用签名。
AppLocker 的 PE 文件的哈希规则基于文件的 SHA2 验证码哈希值。如果 PE 文件符合前面所述的两个条件之一,不受信任文件的验证码哈希值。AppLocker 无法处理此类文件的验证码哈希值。因此,不能创建此类文件的发布服务器或哈希规则。

解决方案

可为您的计算机有害内容与 Windows 验证码规格不相符的文件或更改后应用签名的文件。因此,我们建议遵循的文件替换此类文件,与 Windows 安全要求。若要执行此操作,可能需要使用原始软件作者发布符合要求的新文件。

如果您决定继续使用此类文件,您可以创建 AppLocker 基于路径的规则来控制这些文件。

更多信息

在 Windows 8 和基于 Windows Server 2012 的计算机,或 Windows 7 和 MS12-024 安装安全更新的基于 Windows Server 2008 R2 的计算机上,无法创建哈希值或未签名的文件的发布者规则。您只可以创建基于路径的规则,此类文件。此外,如果您的 AppLocker 策略包含基于此类文件的哈希或发布者规则,该规则不再有效为该文件。下面的 AppLocker 策略是这种行为的示例:
<AppLockerPolicy Version="1">
<RuleCollection Type="Exe" EnforcementMode="Enforced">
<FileHashRule Action="Allow" UserOrGroupSid="S-1-1-0" Description="" Name="Allow Calculator" Id="7509591f-7552-4ed0-ac56-7b727cd1f9cf">
<Conditions>
<FileHashCondition>
<FileHash Type="SHA256" SourceFileLength="53344" SourceFileName="calculator.exe" Data="0x2E8950C38FE3DD02D9F9A012BA9481E7E4704838BB5208E3F7086B6935520A93"/>
</FileHashCondition>
              </Conditions>
</FileHashRule>
<FilePublisherRule Id="a3ab2d94-c20d-4039-8f2b-6caaff04e816" Name="Deny Contoso" Description="Deny Games" UserOrGroupSid="S-1-1-0" Action="Deny">
<Conditions>
<FilePublisherCondition PublisherName="Contoso" ProductName="Attack of Zombies" BinaryName="*">
<BinaryVersionRange LowSection="*" HighSection="*" /> 
                     </FilePublisherCondition>
</Conditions>
         </FilePublisherRule>
…
…
</AppLockerPolicy>
在此示例中,AppLocker 策略有两个规则。第一条规则 ("允许计算器") 是允许 Calculator.exe 运行哈希规则。第二条规则 ("拒绝 Contoso") 是阻止攻击的僵尸先机 contoso 发布的任何文件的发布者规则。Calculator.exe 和 Zombies.exe 两个符合前面所述的两个条件之一,作为 Windows 验证码签名验证失败。在应用 MS12-024 之前,Calculator.exe 规则允许的"允许计算器",并在 Zombies.exe"拒绝 Contoso"规则阻止。MS12-024 应用后,AppLocker 不能处理 Calculator.exe SHA2 验证码哈希但认为 Zombies.exe 作为未经签名的文件。因此,触发这种规则,并且出现意外的行为。

参考

有关安全公告 MS12-024 的详细信息,请转到下面的 Microsoft TechNet 网站:
Microsoft 安全公告 MS12-024
有关 Windows 验证码可移植可执行文件的签名格式的详细信息,请转到下面的 MSDN 网站:
有关 Windows 验证码可移植可执行文件的签名格式的一般信息

属性

文章编号: 2749690 - 最后修改: 2012年10月31日 - 修订: 1.0
这篇文章中的信息适用于:
  • Windows 7 Enterprise
  • Windows 7 Ultimate
  • Windows 7 Professional
  • Windows Server 2008 R2 Standard
  • Windows Server 2008 R2 Enterprise
  • Windows Server 2008 R2 Datacenter
  • Windows Server 2008 R2 Foundation
  • Windows 8 Enterprise
  • Windows 8 Pro
  • Windows Server 2012 Datacenter
  • Windows Server 2012 Essentials
  • Windows Server 2012 Foundation
  • Windows Server 2012 Standard
关键字:?
kbprb kbsurveynew kbexpertiseadvanced kbmt KB2749690 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 2749690
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com