MemoryGuardLoader:基于PAGE_GUARD+VEH的内存保护加载器

admin 2026-03-19 17:03:40 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档介绍MemoryGuardLoader内存保护加载器,结合RC4加密、PAGE_GUARD与VEH异常处理机制实现Shellcode免杀。核心原理通过拦截非法线程内存访问以绕过杀软扫描,实测可过主流杀软。文章详细解析了技术原理与使用步骤,但关键源码需加入付费圈子获取,属于典型技术引流软文,为红队攻防提供了内存保护思路。 综合评分: 65 文章分类: 免杀,红队,安全工具


cover_image

MemoryGuard Loader:基于 PAGE_GUARD + VEH 的内存保护加载器

原创

星夜AI安全 星夜AI安全

星夜AI安全

2026年3月17日 13:31 吉林

#


免杀,是一个永恒的话题。当杀软从文件层面逐步进化到内存查杀,如何保护自己的 shellcode 不被「抄家」,就成了红队攻防的关键技能。今天给大家介绍一个开源项目——MemoryGuard Loader,它利用 Windows 的 PAGE_GUARD 机制和 VEH (向量化异常处理) 实现内存保护,让杀软无法扫描到正在执行的 shellcode。


📦 项目简介

MemoryGuard Loader 是一款基于 PAGE_GUARD + VEH 技术的内存保护加载器,核心功能是:

  • ✅ RC4 加密 shellcode:静态查杀 bypass
  • ✅ PAGE_GUARD 内存保护:阻止杀软内存扫描
  • ✅ VEH 异常处理:精确控制合法线程访问
  • ✅ 静态编译:无 DLL 依赖,落地即运行

🛠️ 环境准备

1. 安装 MinGW-w64

# 通过 MSYS2 (推荐)
pacman -S mingw-w64-x86_64-gcc mingw-w64-i686-gcc

确保以下命令可用:

  • x86_64-w64-mingw32-gcc (64位)
  • i686-w64-mingw32-gcc (32位)

2. 准备 shellcode

生成 Cobalt Strike 或其他 C2 的 raw 格式 shellcode:

Attacks -> Packages -> Payload Generator -> Raw

保存为 beacon.bin


🚀 快速使用

步骤 1:加密 shellcode

# RC4 加密 (推荐)
python encrypt_shellcode.py beacon.bin shellcode.h mypassword

# 或使用 16 进制密钥
python encrypt_shellcode.py beacon.bin shellcode.h 0x12345678

这会生成 shellcode.h 文件,包含:

  • RC4 加密后的 shellcode 字节数组
  • 密钥数组
  • shellcode 大小

步骤 2:编译

# 方式1: Makefile
make

# 方式2: 手动编译
x86_64-w64-mingw32-gcc -o loader_x64.exe loader.c -lkernel32 -lntdll -static

步骤 3:运行

./loader_x64.exe

🔬 技术原理详解

1. RC4 加密

项目使用 RC4 算法对 shellcode 进行加密:

原文 shellcode → RC4(密钥) → 加密数据 → 静态查杀 bypass

加密后,文件落地部分是密文,杀软无法直接识别。

2. PAGE_GUARD 机制

PAGE_GUARD 是 Windows 内存保护的一种特性:

| 内存属性 | 作用 | | — | — | | PAGE_READWRITE | 可读写 | | PAGE_EXECUTE_READ | 可执行可读 | | PAGE_EXECUTE_READWRITE | 可执行可读写可执行 | | PAGE_GUARD | 访问时触发异常 |

核心思路:

  1. 将 shellcode 所在内存设置为 PAGE_GUARD
  2. 任何访问都会触发 STATUS_GUARD_PAGE_VIOLATION 异常
  3. 通过 VEH 捕获异常,判断访问者身份
  4. 合法线程 → 放行;非法线程 → 拒绝

3. VEH (Vectored Exception Handler)

VEH 是 Windows 的向量化异常处理机制,优先级高于普通 SEH:

LONG CALLBACK VectoredExceptionHandler(PEXCEPTION_POINTERS pExceptionInfo) {
    // 1. 判断异常类型
    if (exceptionCode == STATUS_GUARD_PAGE_VIOLATION) {

        // 2. 判断线程身份
        if (currentThreadId == g_allowedThreadId) {
            // 自己的线程 → 移除保护,执行访问
            VirtualProtect(..., PAGE_EXECUTE_READWRITE, ...);
            return EXCEPTION_CONTINUE_EXECUTION;
        } else {
            // 杀软扫描线程 → 拒绝访问,返回 0
            printf("[!] Blocked illegal thread access!");
            return EXCEPTION_CONTINUE_EXECUTION;
        }
    }
    return EXCEPTION_CONTINUE_SEARCH;
}

4. 保护流程图

┌─────────────────────────────────────────────────┐
│              正常执行流程                         │
├─────────────────────────────────────────────────┤
│  1. 线程访问 shellcode 内存                      │
│  2. 触发 PAGE_GUARD 异常                         │
│  3. VEH 捕获 → 检查线程 ID                       │
│  4. 是合法线程 → 移除保护,执行                   │
│  5. 执行完毕 → 重新添加 PAGE_GUARD               │
│  6. 循环往复...                                  │
└─────────────────────────────────────────────────┘

┌─────────────────────────────────────────────────┐
│           杀软内存扫描流程                        │
├─────────────────────────────────────────────────┤
│  1. 杀软线程尝试读取 shellcode                   │
│  2. 触发 PAGE_GUARD 异常                         │
│  3. VEH 捕获 → 检查线程 ID                       │
│  4. 不是合法线程 → 拒绝访问,返回 0               │
│  5. 杀软:「这片内存是空的」                      │
└─────────────────────────────────────────────────┘

📊 免杀效果测试

测试环境

  • Windows 10/11 x64
  • 杀软:Windows Defender + 360 + 火绒

测试结果

| 杀软 | 静态查杀 | 内存查杀 | 备注 | | — | — | — | — | | Windows Defender | ✅ bypass | ✅ bypass | | | 360 | ✅ bypass | ✅ bypass | | | 火绒 | ✅ bypass | ✅ bypass | |

⚠️ 注意:免杀效果取决于杀软实时更新程度,建议结合其他混淆技术使用

360

defender

火绒


⚙️ 可调节参数

在 loader.c 中可调整以下参数:

// 保护间隔 - 增加间隔可降低性能开销
#define GUARD_INTERVAL_MS 50

// 调试模式 - 关闭以减少输出
#define DEBUG_MODE 0
  • GUARD_INTERVAL_MS:保护线程重新添加 PAGE_GUARD 的间隔

  • 值越小:保护越频繁,查杀率更低,但 CPU 开销越大

  • 值越大:性能更好,但可能被快速扫描绕过

  • 建议值:30-100ms


🔐 安全提示

⚠️ 仅供学习研究使用,请勿用于非法用途

本工具本质是红队攻防研究技术,正当用途:

  • 渗透测试授权评估
  • 安全产品检测
  • 研究杀软检测原理

🏁 总结

MemoryGuard Loader 提供了一种思路:让杀软「看不到」shellcode。

核心优势:

  1. 静态层面:RC4 加密,绕过文件查杀
  2. 动态层面:PAGE_GUARD + VEH,阻止内存扫描

工具源码获取

圈子内获取

关注微信公众号后台回复入群 即可加入星夜AI安全交流群

圈子介绍

现任职于某头部网络安全企业攻防研究部,核心红队成员。2021-2023年间累计参与40+场国家级、行业级攻防实战演练,精通漏洞挖掘、红蓝对抗策略制定、恶意代码分析、内网横向渗透及应急响应等技术领域。在多次大型演练中,主导突破多个高防护目标网络,曾获“最佳攻击手”“突出贡献个人”等荣誉。

已产出的安全工具及成果包括:

  • 多款主流杀软通杀工具(兼容卡巴斯基、诺顿、瑞星、360等终端防护,无感知运行,突破多引擎联合检测)
  • XXByPassBehinder v1.1 冰蝎免杀生成器(定制化冰蝎免杀工具,绕过主流终端防护与EDR动态检测,支持自定义载荷)
  • 哥斯拉二开免杀定制版(二开优化,深度免杀,突破终端防护与EDR检测,适配多场景植入)
  • NeoCS4.9终极版(高级免杀加载工具,强化载荷注入与进程劫持,适配多系统版本,无兼容问题)
  • WinDump_免杀版(浏览器凭证窃取工具,支持Chrome/Edge/Firefox等主流浏览器,一键提取敏感数据,免杀过防护)_
  • _DumpBrowser_V1_免杀版(浏览器凭证窃取工具,专攻浏览器密码、Cookie、历史记录提取,免杀性能拉满)
  • fscan二开版(二开优化内网扫描工具,增强指纹精度、弱口令爆破与结果标准化输出,适配复杂内网)
  • RingQ加载器二开版(二开优化免杀加载器,支持Shellcode内存执行,绕过各类终端防护与EDR检测)
  • 多款免杀Webshell集合(覆盖PHP/JSP/ASPX,过主流WAF与终端防护,适配不同Web场景)
  • 免杀360专属加载器(支持Shellcode内存执行,针对性绕过360全系防护检测,无感知运行)
  • 一键Kill 火绒 defender 工具 HDKiller(包含源码)
  • win11 一键kill 360工具 InjectKill(包含源码)
  • win11 一键kill defender工具win11_df-killer(包含源码)
  • 免杀火绒6.0内存防护加载器BypassMemLoader

后续将不断更新到内部圈子中 欢迎加入圈子


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:星夜AI安全 星夜AI安全 星夜AI安全《MemoryGuard Loader:基于 PAGE_GUARD + VEH 的内存保护加载器》

链接、装载与库 网络安全文章

链接、装载与库

文章总结: 本文系统总结了程序从源码到运行的全流程,深入解析编译、静态链接、ELF目标文件格式、装载、动态链接及运行库等底层机制。文档详细阐述了符号解析、重定位
评论:0   参与:  0