[Bug已解决] 未签名可执行文件被 Windows-Defender-误报为木马-代码签名与信任方案

发布时间:2026/7/17 12:51:30

[Bug已解决] 未签名可执行文件被 Windows-Defender-误报为木马-代码签名与信任方案
[Bug已解决] 未签名可执行文件被 Windows Defender 误报为木马代码签名与信任解决方案一、现象长什么样你发布了一个 Windows 可执行文件比如一个「计算机操作 / 自动化」工具codex-computer-use.exe。用户一运行Windows Defender 直接弹Trojan:Win32/ClickFix.DE!MTB——把它当木马隔离了。即 GitHub Issues (openai/codex) #31419Windows Defender flags unsigned codex-computer-use.exe command line as Trojan:Win32/ClickFix.DE!MTB。本质是这个 exe 没有数字签名unsigned而 Defender 的启发式尤其针对「能操控鼠标键盘/弹窗诱导点击」类行为的程序对未签名二进制更敏感于是误报为木马。这是个通用的「Windows 代码签名 / 防误报」问题不是你代码真有恶意。本文聚焦通用技术Windows Authenticode 代码签名、为什么未签名会被启发式误报、如何对 exe 做可信签名、以及发布前的信任建设SmartScreen/信誉。用真实可操作的命令说明不依赖具体产品。二、背景为什么未签名 exe 容易被误报Windows 对可执行文件有一套信任链Authenticode 签名用受信任 CA 颁发的代码签名证书给 exe 加数字签名。系统能验证「这文件来自某身份、未被篡改」SmartScreen 信誉微软云信誉系统根据「下载量、签名者、投诉」给文件打分陌生未签名文件常被拦防病毒启发式Defender 等看行为特征。像「模拟点击 / 弹窗诱导用户点按钮ClickFix」这类行为正是木马常用手法所以 Defender 有专门检测如ClickFix家族。一个未签名的、又会操控 UI 的 exe极易撞上这条启发式。具体到这个 bug程序叫computer-use行为是「操作计算机鼠标键盘/点击」。Defender 的ClickFix.DE检测专门抓「诱导用户点击的木马」。你的程序行为相似 未签名无身份背书于是被误判。三、为什么「未签名」是放大器签名不仅是「防伪」更是向系统证明身份有签名Defender 能关联「签名者 X 发布过很多干净文件」降低误报概率未签名Defender 看不到可信身份只能纯靠行为启发式判断误报率显著升高ClickFix.DE!MTB这类带!MTBmachine learning / 云查后缀的往往是「行为相似 无签名信誉」触发的 ML 判定。所以签名 积累信誉是消除这类误报的正道。四、最小可运行检查 exe 是否已签名PowerShell下面用 PowerShell 演示「如何检查一个 exe 的签名状态」以及签名验证逻辑真实命令Windows 环境# 检查文件是否有 Authenticode 签名 Get-AuthenticodeSignature -FilePath codex-computer-use.exe # 输出 Status 字段 # Valid - 签名有效且链可信 # NotSigned - 未签名易被误报 # HashMismatch - 签名后文件被改 # UnknownError - 证书链不受信需信任 CA # 用 sigcheckSysinternals看更详细 # sigcheck -v codex-computer-use.exePython 也可读取 PE 签名头示意import subprocess # 调系统工具判断跨平台 CI 上也可在 Windows runner 跑 def is_signed(path): out subprocess.run( [powershell, Get-AuthenticodeSignature, -FilePath, path], capture_outputTrue, textTrue, ).stdout return Status : Valid in out print(is_signed(codex-computer-use.exe))要点发布前必须确认Status: Valid否则就是「未签名」状态易误报。五、解决方案一用代码签名证书给 exe 签名核心正确做法购买/获取代码签名证书Code Signing Certificate用signtool对 exe 签名# 用 signtoolWindows SDK / Visual Studio 自带签名 signtool sign /fd SHA256 /td SHA256 /tr http://timestamp.digicert.com /sha1 证书指纹 codex-computer-use.exe # 参数说明 # /fd SHA256 文件摘要算法 # /tr URL RFC3161 时间戳服务让签名在证书过期后仍有效 # /sha1 thumbprint 用证书指纹指定签名身份签名后exe 带上「谁发布的、未被篡改」的可信标记Defender 误报率大幅下降。注意现代代码签名证书通常要求硬件安全模块HSM/ 密钥不导出EV 或标准但密钥存于 HSM这是 CA/Browser 基线要求提升签名可信度。六、解决方案二积累 SmartScreen 信誉即使签名了全新签名者首次发布仍可能被 SmartScreen 拦「未知发布者」。积累信誉的方法持续用同一证书签名发布下载量上来后微软云信誉会把你的签名者标记为可信EV 代码签名证书扩展验证证书初始信誉更高发布即较少被拦提交误报反馈让用户/你在 Microsoft 安全智能提交「误报」样本加速信誉修正保持二进制稳定频繁改 exe 哈希会拖慢信誉积累。七、解决方案三减少触发启发式的行为特征既然ClickFix检测针对「诱导点击」行为发布前审视程序行为避免更像木马不要模拟「弹窗骗用户点按钮」的 UI 模式自动化操作需明确、可审计、用户授权而非隐蔽操控在文档/UI 里清楚说明「这是自动化工具、需要用户明确启动」避免与已知木马重叠的行为签名如从剪贴板/网页自动执行命令。这既能降误报也更符合安全规范用户明确授权、行为透明。八、解决方案四CI 里自动签名 验证把签名做成发布流水线一步并验证# 示意CI 发布阶段 - name: Sign executable run: | signtool sign /fd SHA256 /tr http://timestamp.digicert.com /sha1 ${{ secrets.CODE_SIGN_THUMBPRINT }} dist/codex-computer-use.exe - name: Verify signature run: | powershell Get-AuthenticodeSignature -FilePath dist/codex-computer-use.exe # 断言 Status: Valid 才允许发布这样每次发布都是签名态不会漏发未签名版本这正是 #31419 的根因——发了一个未签名构建。九、排查清单Defender 误报未签名 exe运行 exe 被 Defender 标Trojan:Win32/ClickFix.DE!MTB且程序本身无害 → 未签名 行为启发式误报#31419 类。检查签名Get-AuthenticodeSignature看Status若为NotSigned即根因。签名用代码签名证书signtool sign签 exe加 RFC3161 时间戳。积累信誉同一证书持续发布、考虑 EV 证书、提交误报反馈。降启发式审视行为避免 ClickFix 类诱导点击特征行为透明可授权。CI 签名发布流水线自动签名 验证Status: Valid杜绝漏发未签名版。十、小结Windows Defender flags unsigned codex-computer-use.exe command line as Trojan:Win32/ClickFix.DE!MTBopenai/codex #31419的本质是该 exe 未做 Authenticode 代码签名而 Defender 针对「操控 UI/诱导点击ClickFix」类行为的启发式对无身份背书的未签名二进制高度敏感于是把「行为相似 无签名信誉」的程序误判为木马。通用解决方案适用于任何 Windows 可执行文件发布代码签名用代码签名证书signtool sign签 exeSHA256 RFC3161 时间戳向系统证明身份积累信誉同一证书持续发布、考虑 EV 证书、向微软提交误报反馈提升 SmartScreen 信任降启发式让自动化行为透明、需用户明确授权避免 ClickFix 类诱导点击特征CI 签名验证发布流水线自动签名并断言Status: Valid杜绝漏发未签名构建。记住未签名 敏感行为 Windows 防病毒误报高发组合。代码签名是向系统「证明身份」的最直接手段能显著降低启发式误报。这是 Windows 软件发布安全里「Authenticode 签名 / SmartScreen 信誉」的标准实践也符合安全规则中的「签名与信任」要求。

相关新闻

[Bug已解决] 从旧会话-fork-进-worktree-前卡在创建子线程-fork-与线程安全方案

[Bug已解决] 从旧会话-fork-进-worktree-前卡在创建子线程-fork-与线程安全方案

2026/7/17 12:51:30

[Bug已解决] 从旧会话 fork 进 worktree 前卡在创建子线程(fork 与线程安全)解决方案 一、现象长什么样 你的应用有个功能:从「上一次对话 / 任务」fork 出一个新的隔离工作区(git worktree),在新 worktree…

VRCX终极指南:如何用免费开源工具彻底改变你的VRChat社交体验

VRCX终极指南:如何用免费开源工具彻底改变你的VRChat社交体验

2026/7/17 12:41:30

VRCX终极指南:如何用免费开源工具彻底改变你的VRChat社交体验 【免费下载链接】VRCX Friendship management tool for VRChat 项目地址: https://gitcode.com/GitHub_Trending/vr/VRCX 还在为VRChat中混乱的好友关系、难以管理的世界收藏和错过的社交机会而烦…

天勤量化TqSdk:终极期货量化交易开发包完整指南

天勤量化TqSdk:终极期货量化交易开发包完整指南

2026/7/17 12:41:30

天勤量化TqSdk:终极期货量化交易开发包完整指南 【免费下载链接】tqsdk-python 天勤量化开发包, 期货量化, 实时行情/历史数据/实盘交易 项目地址: https://gitcode.com/gh_mirrors/tq/tqsdk-python 天勤量化TqSdk是国内领先的期货量化交易Python开发包&…

打造纯净阅读空间:ReadCat开源小说阅读器完全指南

打造纯净阅读空间:ReadCat开源小说阅读器完全指南

2026/7/17 14:21:35

打造纯净阅读空间:ReadCat开源小说阅读器完全指南 【免费下载链接】read-cat 一款免费、开源、简洁、纯净、无广告的小说阅读器 项目地址: https://gitcode.com/gh_mirrors/re/read-cat 厌倦了广告弹窗的骚扰?受够了隐私数据被收集?想…

MemtestCL深度解析:专业级GPU内存检测与硬件诊断实战指南

MemtestCL深度解析:专业级GPU内存检测与硬件诊断实战指南

2026/7/17 14:21:35

MemtestCL深度解析:专业级GPU内存检测与硬件诊断实战指南 【免费下载链接】memtestCL OpenCL memory tester for GPUs 项目地址: https://gitcode.com/gh_mirrors/me/memtestCL MemtestCL是一款基于OpenCL标准的GPU内存检测工具,为计算设备提供精…

EnderIO-1.5-1.12管道系统详解:物品、流体与能量的无缝传输技巧

EnderIO-1.5-1.12管道系统详解:物品、流体与能量的无缝传输技巧

2026/7/17 14:21:35

EnderIO-1.5-1.12管道系统详解:物品、流体与能量的无缝传输技巧 【免费下载链接】EnderIO-1.5-1.12 项目地址: https://gitcode.com/gh_mirrors/en/EnderIO-1.5-1.12 EnderIO-1.5-1.12是一款功能强大的Minecraft模组,其管道系统为玩家提供了物品…

Autosar DCM配置 31服务

Autosar DCM配置 31服务

2026/7/17 14:21:35

本文将介绍基于ETAS Autosar工具链实现UDS 31 服务以及实际使用展示 关于31服务(Routine control): 31服务一般是用来标定或者控制某个数据给到ASW。31服务有三个子服务 31 01 启动例程(解析上位机的数据,并且发送对应的值和命令给ASW) 31 02 停止例程(一般释放控制权…

AI 生成组件的自动化回归测试:快照对比与交互回放的工程方案

AI 生成组件的自动化回归测试:快照对比与交互回放的工程方案

2026/7/17 14:21:35

AI 生成组件的自动化回归测试:快照对比与交互回放的工程方案 一、那段"改了一个 props 默认值,三个页面塌了"的凌晨 凌晨两点,线上告警:用户详情页的对话框无法关闭。回溯提交记录,前端同学修改了 Modal 组件…

如何在5分钟内启动diffusiongemma-26B-A4B-it-4bit:MLX模型快速部署教程

如何在5分钟内启动diffusiongemma-26B-A4B-it-4bit:MLX模型快速部署教程

2026/7/17 14:11:34

如何在5分钟内启动diffusiongemma-26B-A4B-it-4bit:MLX模型快速部署教程 【免费下载链接】diffusiongemma-26B-A4B-it-4bit 项目地址: https://ai.gitcode.com/hf_mirrors/mlx-community/diffusiongemma-26B-A4B-it-4bit 想要快速体验强大的图像生成AI模型吗…

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践

2026/7/17 10:50:47

Unity游戏文本翻译架构深度解析:XUnity.AutoTranslator的技术实现与工程实践 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为Unity游戏社区中最成熟的文本翻译解决方…

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持

2026/7/16 14:29:31

openEuler Raspberry Pi Kernel设备驱动开发指南:为树莓派硬件添加支持 【免费下载链接】raspberrypi-kernel It provides openEuler kernel source for Raspberry Pi 项目地址: https://gitcode.com/openeuler/raspberrypi-kernel 前往项目官网免费下载&…

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧

2026/7/16 14:18:17

openEuler系统集成测试实战:基于smoke-test套件的环境验证技巧 【免费下载链接】integration-test The repo contains test suits for system integration test 项目地址: https://gitcode.com/openeuler/integration-test 前往项目官网免费下载:…

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

Cursor终端插件生态避坑指南:23个实测低效插件黑名单,附3个自研轻量替代方案

2026/7/17 0:00:57

更多请点击: https://intelliparadigm.com 第一章:Cursor终端插件生态避坑指南概览 Cursor 作为基于 VS Code 内核构建的 AI 原生编辑器,其终端插件生态虽活跃,但存在兼容性断层、权限策略突变与调试链路断裂等典型风险。开发者常…

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表)

2026/7/17 0:00:57

更多请点击: https://codechina.net 第一章:ChatGPT写作提示词效率革命:单条提示词响应质量提升3.8倍的关键变量(附可复用提示词矩阵表) 提示词工程已从经验试错迈入变量驱动的科学阶段。实证研究表明,影响…

DeepSeek V4替换Codex底座模型的实践与优化

DeepSeek V4替换Codex底座模型的实践与优化

2026/7/17 0:00:57

1. 为什么选择用DeepSeek V4替换Codex的底座模型去年我在开发一个智能代码补全工具时,发现Codex的默认底座模型在复杂业务逻辑场景下表现不尽如人意。经过多次测试对比,DeepSeek V4在以下几个关键指标上展现出明显优势:代码补全准确率&#x…