【免杀】C2免杀技术(二)VS设置

admin 2025年5月17日13:16:32评论2 views字数 2281阅读7分36秒阅读模式

一、概述

编译器生成的二进制文件特征(代码结构、元数据、指纹)可能被杀软的静态或动态检测规则匹配。Visual Studio 的构建设置(特别是运行库、编译器优化、链接方式等)会直接影响最终生成的二进制文件的结构、行为特征和依赖关系,而这些都是杀毒软件/EDR 检测的关键依据。

二、本文VS版本

【免杀】C2免杀技术(二)VS设置

三、基本模式选择

选择“Release”模式,不要使用"Debug"模式  

【免杀】C2免杀技术(二)VS设置

四、常规设置

以下是一些在Visual Studio(VS)中进行免杀设置的相关内容 

1、关闭SDL检查 

项目属性页→配置属性→C/C++→常规 

【免杀】C2免杀技术(二)VS设置

2、运行库设置

项目属性页→配置属性→C/C++→代码生成(同3、图)

需结合实际情况设置多线程(/MT)或多线程DLL(/MD),既取决于目标的CRT环境,部分老的机器上没有CRT环境就需要/MT(自带CRT,但是生成的文件较大);又取决于杀软机制。

3、禁用安全检查(/GS-)

项目属性页→配置属性→C/C++→代码生成 

【免杀】C2免杀技术(二)VS设置

4、关闭生成清单 

项目属性页→配置属性→链接器→清单文件 

【免杀】C2免杀技术(二)VS设置

五、其它设置参考 

5、去除调试信息 

项目属性页→配置属性→链接器→调试 

【免杀】C2免杀技术(二)VS设置

6、关闭清单详细输出

项目属性页→配置属性→清单工具→常规→详细输出→否

【免杀】C2免杀技术(二)VS设置

7、取消嵌入清单

项目属性页→配置属性→清单工具→输入和输出→嵌入清单→否 

【免杀】C2免杀技术(二)VS设置

8、禁用优化

项目属性页→配置属性→C/C++→优化 

【免杀】C2免杀技术(二)VS设置

9、启用最小重新生成

项目属性页→配置属性→C/C++→代码生成 

【免杀】C2免杀技术(二)VS设置

六、效果展示

下面是一段在Windows系统中创建一个 .lnk 快捷方式的代码 

#include<windows.h>#include<shobjidl.h>#include<shlguid.h>#include<shlwapi.h>#include<stdio.h>#pragma comment(lib, "ole32.lib")#pragma comment(lib, "shell32.lib")#pragma comment(lib, "shlwapi.lib")HRESULT CreateLink(LPCWSTR lpszPathObj, LPCWSTR lpszPathLink, LPCWSTR lpszDesc){    HRESULT hres;    IShellLinkW* psl;    hres = CoInitialize(NULL);    if (FAILED(hres)) return hres;    hres = CoCreateInstance(CLSID_ShellLinkNULLCLSCTX_INPROC_SERVER, IID_IShellLinkW, (LPVOID*)&psl);    if (SUCCEEDED(hres)) {        IPersistFile* ppf;        if (!PathFileExistsW(lpszPathObj)) {            wprintf(L"目标文件不存在: %sn", lpszPathObj);            CoUninitialize();            return E_FAIL;        }        psl->SetPath(lpszPathObj);        psl->SetDescription(lpszDesc);        hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&ppf);        if (SUCCEEDED(hres)) {            hres = ppf->Save(lpszPathLink, TRUE);            ppf->Release();        } else {            wprintf(L"QueryInterface失败,HRESULT: 0x%08Xn", hres);        }        psl->Release();    } else {        wprintf(L"CoCreateInstance失败,HRESULT: 0x%08Xn", hres);    }    CoUninitialize();    return hres;}int main(){    LPCWSTR lpszPathObj = L"C:\Users\Coriander\Desktop\1.html";    LPCWSTR lpszPathLink = L"C:\Users\Coriander\Desktop\ToolsShortcut.lnk";    LPCWSTR lpszDesc = L"快捷方式测试";    HRESULT hres = CreateLink(lpszPathObj, lpszPathLink, lpszDesc);    if (SUCCEEDED(hres)) {        wprintf(L"✅ 快捷方式创建成功!n");    } else {        wprintf(L"❌ 创建失败,HRESULT: 0x%08Xn", hres);    }    system("pause");    return 0;}

正常编译好,给360检测,被查杀

【免杀】C2免杀技术(二)VS设置

修改VS设置:禁用SDL检查 

【免杀】C2免杀技术(二)VS设置

绕过360杀毒! 

【免杀】C2免杀技术(二)VS设置
【免杀】C2免杀技术(二)VS设置

七、结尾

免杀效果通常受多方面影响,没有哪一种技术或者手段能够通吃,通常需要多种手段结合才能最终实现免杀;其次,实战中面临的环境也不一样,不同的杀软效果也不一样,具体问题还需具体分析。本系列文章以技术的实现为主,验证时讲究点到为止,以此表达一项技术的有效性。

参考文章:

通过Vs配置绕过360QVM,VT全绿

原文始发于微信公众号(仇辉攻防):【免杀】C2免杀技术(二)VS设置

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月17日13:16:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【免杀】C2免杀技术(二)VS设置https://cn-sec.com/archives/4075052.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息