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

带WTD_HASH_ONLY_FLAG时WinVerifyTrust返回TRUST_E_NO_SIGNATURE的原因

WinVerifyTrust带WTD_HASH_ONLY_FLAG返回TRUST_E_NO_SIGNATURE的原因解析

现象总结

  • 对字节被修改的文件调用不带WTD_HASH_ONLY_FLAG的WinVerifyTrust,返回预期错误码0x80096010(TRUST_E_BAD_DIGEST)
  • 对同一文件调用带WTD_HASH_ONLY_FLAG的WinVerifyTrust,返回错误码0x800B0100(TRUST_E_NO_SIGNATURE)
  • 使用signtool verify验证该文件,返回预期的0x80096010(TRUST_E_BAD_DIGEST)

复现方式

运行WinVerifyTrust的PInvoke示例代码,设置WinTrustDataProvFlags ProvFlags = WinTrustDataProvFlags.HashOnlyFlag后执行验证。

疑问解答

即使文件存在常规数字签名,带WTD_HASH_ONLY_FLAG的WinVerifyTrust仍返回TRUST_E_NO_SIGNATURE的原因是:该验证模式仅支持验证专门用WTD_HASH_ONLY_FLAG签名生成的文件。常规签名的文件不符合该模式的验证要求,因此会被判定为无有效签名(暂无官方文档明确说明,该结论来自第三方项目代码注释)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:22:34