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

已用Certum签名的C#应用仍触发Microsoft Defender SmartScreen?

解决已签名程序被Microsoft Defender SmartScreen拦截的问题

常见原因及对应解决方式

  • 新证书需要积累信誉:刚购买的代码签名证书没有使用历史,SmartScreen的信任机制依赖证书的下载量、用户运行反馈等数据建立信誉。这种情况确实需要等待几天到几周,当证书有足够多的安全运行记录后,提示会自动消失。
  • 压缩包未签名的影响:你发送的是压缩后的文件,压缩包本身没有签名,SmartScreen会对这类未签名的压缩文件保持警惕。可以尝试直接发送签名后的exe文件(确认Discord允许传输此类文件),或者使用支持签名的压缩工具给压缩包也添加签名。
  • 证书级别限制:Certum的开源代码签名套件如果是个人级证书,SmartScreen的信任门槛更高。EV(扩展验证)证书通过更严格的身份验证,能更快获得SmartScreen信任,若频繁遇到这类问题可以考虑升级证书类型。
  • 签名有效性二次验证:虽然你已确认签名成功,仍可通过以下命令再次验证签名完整性和时间戳有效性:
    signtool.exe verify /pa /v "PathToMySimpleExeFile"
    
    检查输出是否存在错误,比如时间戳是否正常生效——有效的时间戳能确保证书过期后签名仍被认可。
  • 程序行为触发风险判定:你的程序会向启动路径写入文件,这类操作可能被SmartScreen标记为潜在风险。可以修改代码,将文件写入用户文档目录(示例代码如下),降低被判定为可疑的概率:
    private void button1_Click(object sender, EventArgs e)
    {
        string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        File.WriteAllText(Path.Combine(docPath, "File.txt"), textBox1.Text);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 10:43:14