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

如何用C语言实现程序运行时自修改以规避Windows安全检测?

解决关机程序被杀毒软件误报的方案

你得先明白一个关键问题:编译好的exe里根本不存在源代码的注释内容,所以你想通过修改源代码注释来绕检测的思路行不通——杀毒软件查的是exe的机器码特征,不是源代码。下面给你两个实用的解决办法:

方案一:拆分拼接命令字符串

把关机命令拆成几段,运行时再拼起来,避免静态特征被匹配到:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main() {
    char cmd_part1[] = "C:\\WINDOWS\\System32\\shutdown ";
    char cmd_part2[] = "/s";
    char full_cmd[100] = {0};

    strcat(full_cmd, cmd_part1);
    strcat(full_cmd, cmd_part2);
    
    system(full_cmd);
    return 0;
}

方案二:直接调用Windows系统API(更推荐)

不用system函数,直接调用系统原生的关机API,能大幅降低误报概率:

#include <windows.h>

int main() {
    // EWX_SHUTDOWN 表示关机,EWX_FORCE 强制关闭所有未响应程序
    ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0);
    return 0;
}

关于“程序自修改”的补充

如果你坚持想做程序自修改(修改自身exe文件),这需要操作PE文件结构,复杂度很高,而且更容易被杀毒软件盯上。大致步骤是获取自身路径、打开exe文件、找到对应代码段修改机器码、保存后重新执行,但这种方法没必要,普通场景完全用不上。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 16:19:51