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

VS Code编译的C程序被Windows Defender报Trojan:Win32误删如何解决?

解决Windows Defender误报MinGW生成的C可执行文件为Trojan:Win32的办法

临时应急方案

  • 恢复被隔离文件:打开Windows Defender安全中心 → 病毒和威胁防护 → 保护历史记录 → 找到被删除的exe文件,选择「恢复」并勾选「允许在设备上保留」。
  • 临时关闭实时保护(仅调试时用,调试后务必重启):进入病毒和威胁防护设置 → 管理设置 → 关闭「实时保护」选项。

长期有效配置

  • 添加排除项:
    1. 打开Windows Defender安全中心 → 病毒和威胁防护 → 病毒和威胁防护设置 → 管理设置 → 添加或删除排除项。
    2. 直接添加你的C项目根目录(包含生成的exe文件夹),或者MinGW的bin目录(比如C:\MinGW\bin),避免编译器及输出文件被误判。
  • 自定义生成的exe文件名:
    默认的a.exe这类通用名称更容易触发误报,修改VS Code的tasks.json,指定自定义输出文件名。示例片段:
    {
        "version": "2.0.0",
        "tasks": [
            {
                "label": "build",
                "type": "shell",
                "command": "gcc",
                "args": [
                    "-g",
                    "${file}",
                    "-o",
                    "${fileDirname}/my_custom_program.exe" // 替换为自定义名称
                ],
                "group": {"kind": "build", "isDefault": true}
            }
        ]
    }
    
  • 更新MinGW至最新版:
    旧版本MinGW生成的可执行文件可能带有易被误判的特征,下载官方最新版并安装完整工具链,避免组件缺失。
  • 提交误报样本:
    在Windows Defender保护历史记录中,选中被误判的文件,选择「提交样本」并标记「这是一个误报」,帮助微软更新病毒库,减少后续同类问题。

额外排查方向

  • 检查代码片段:如果代码中包含敏感系统调用(比如直接操作内存、进程相关的测试代码),哪怕是学习用的,也可能触发防护,简化代码后再测试。
  • 更换编译器:若MinGW问题持续,可尝试TDM-GCC或MSVC编译器,不同编译器生成的可执行文件特征不同,可能规避误报。

内容的提问来源于stack exchange,提问作者Ahsanul Ekram Sahil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 17:24:56