AI 免杀技术套件 v4.0 绕过主流杀软和 EDR 检测 ( AV Evasion Skill)
AI免杀技术套件v4.0是一套完整的Shellcode免杀解决方案,采用ModuleStomping、IPv4混淆、XOR加密、Fiber执行和间接Syscall等技术,绕过主流杀软和EDR检测。支持DLL分离加载,编译为无窗口GUI程序,适用于Windows10/11 x64环境。
工具介绍
一套完整的免杀解决方案,涵盖 Shellcode 处理与 Loader 编写,结合 IPv4 混淆、XOR 加密、Module Stomping、Fiber 执行、间接 Syscall 等技术,用于绕过主流杀软和 EDR 检测。
AI 免杀技术套件 v4.0 是一套完整的 Shellcode 免杀解决方案。采用 Module Stomping 技术将 Shellcode 注入合法微软签名 DLL 的代码段执行,配合 IPv4 地址混淆、XOR 加密、HeapAlloc 堆分配、Fiber 执行等隐匿策略,从静态签名和行为分析两个维度绕过主流杀软和 EDR 检测。
核心特性
Shellcode 处理
✅ Shellcode Patch:同义指令替换 + 花指令注入,破坏静态特征码
✅ IPv4 地址混淆:将 Shellcode 伪装成 IPv4 地址数组,无字节序问题
Loader 免杀技术
✅ Module Stomping:覆写合法微软签名 DLL 的
.text段,零 VirtualAlloc 执行内存✅ HeapAlloc 解密缓冲:使用堆分配而非 VirtualAlloc,行为与正常应用一致
✅ RW→RX 内存权限翻转:VirtualProtect 作用于签名 DLL 内存,非匿名页
✅ Fiber 执行:CreateFiber + SwitchToFiber,非 CreateThread
✅ 回调备用执行:EnumSystemLocalesW 回调路径
✅ 零显式反沙箱:不查 CPU、内存、VM 进程等(检测行为本身即特征)
✅ 零系统指纹:不调 GetUserNameW、GetComputerName 等
✅ 手动 IPv4 解析:不用 sscanf,减少 CRT 导入特征
✅ DLL 分离加载:Loader 不含敏感数据,静态免杀更优
✅ 无窗口静默:-mwindows 编译为 GUI 程序
使用指南
唯一方案:DLL 分离加载 (loader_v4.c)
Loader 本身不含敏感 数据,运行时动态加载 helper.dll 获取 IPv4 数组和密钥。
查看生成的
shellcode_obfuscated_ipv4.c中的 IPv4 数组将 IPv4 数组复制到
payload_dll.c的ipv4_array[]将加密密钥填入
payload_dll.c的GetEncryptionKey()返回值Loader 代码无需修改(已内置完整 Module Stomping 逻辑)
优势:
静态免杀:Loader 不含 Shellcode 特征
灵活性:更换 Shellcode 只需重新编译 DLL
行为隐匿:Module Stomping 避开 VirtualAlloc 执行内存检测
项目结构
av-evasion-skills/
├── README.md # 项目说明文档
├── SKILL.md # Skill 技术文档
└── scripts/
├── shellcode-patch.py # Shellcode Patch 工具
├── shellcode-encrypt.py # Shellcode XOR 加密工具
├── shellcode-obfuscate-ipv4.py # IPv4 混淆工具
├── gen_embed_data.py # 内嵌数据生成脚本
├── loader_v5.c # Loader 主源码
├── payload_data.h # 加密数据头文件(由 gen_embed_data.py 生成)
└── tcp_windows_amd64.bin # 示例 Shellcode技术架构
1. Shellcode 处理流程
原始 Shellcode
│
▼
┌─────────────────┐
│ shellcode-patch │ 同义指令替换(破坏字节特征)
└────────┬────────┘
▼
┌─────────────────┐
│shellcode-encrypt│ XOR 加密 (自定义密钥)
└────────┬────────┘
▼
┌─────────────────────┐
│shellcode-obfuscate │ IPv4 地址混淆
│ -ipv4 │
└────────┬────────────┘
▼
IPv4 数组 (C 格式)
│
▼
┌─────────────────────┐
│ gen_embed_data.py │ 生成 payload_data.h(XOR 加密)
└────────┬────────────┘
▼
#include "payload_data.h" ← 编译进 loader_v5.c
2. Loader 执行流程
程序启动 (main)
│
▼
PatchETW() ← Indirect Syscall 补丁 EtwEventWrite
│
▼
解密内嵌密钥到栈上 ← DecryptStr(enc_key)
│
▼
HeapAlloc(堆分配) + IPv4 反混淆 ← 从 enc_ipv4[] 解密+解析
│
▼
XOR 解密还原 Shellcode
│
▼
SecureZeroMemory(key) ← 擦除栈上密钥明文
│
▼
LoadLibrary("msimg32.dll") ← 加载合法签名 DLL
│ (失败回退: dcomp.dll → dwmapi.dll)
▼
解析 PE 找到 .text 段
│
▼
Indirect Syscall 写入 .text ← BuildSyscallStub → NtWriteVirtualMemory
│ (回退: WriteProcessMemory)
▼
FlushInstructionCache ← 刷新指令缓存
│
▼
SecureZeroMemory + HeapFree ← 擦除堆中明文
│
▼
CleanupSyscallStubs() ← 恢复 .text padding 原始内容
│
▼
函数指针调用(.text) ← 直接调用执行
3. 关键特性
4. DLL 回退链
msimg32.dll → dcomp.dll → dwmapi.dll快速开始
环境要求
操作系统:Windows 10/11 (x64)
Python:3.8+
编译器:GCC (MinGW-w64)
Shellcode:64 位原始 Shellcode
一键处理 Shellcode
# 将你的 shellcode 放到 scripts 目录下
cp your_shellcode.bin scripts/shellcode_raw.bin
cd scripts/
# 步骤1: Patch Shellcode
python shellcode-patch.py shellcode_raw.bin
# 步骤2: XOR 加密
python shellcode-encrypt.py shellcode_patched.bin "你的密钥"
# 步骤3: IPv4 混淆
python shellcode-obfuscate-ipv4.py shellcode_encrypted.bin
# 步骤4: 生成加密数据头文件
python gen_embed_data.py
# 步骤5: 编译 Loader
gcc -mwindows -o loader.exe loader_v5.c -s编译说明
# 编译 Loader(单文件,零额外依赖)
gcc -mwindows -o loader.exe loader_v5.c -s零额外链接库:不需要 -lpsapi,不依赖任何额外静态库。
脚本说明
shellcode-patch.py
Shellcode 字节特征修改工具。扫描已知等价指令模式进行替换,不改变指令长度和语义。
python shellcode-patch.py <shellcode_file>输出:shellcode_patched.bin
shellcode-encrypt.py
Shellcode XOR 加密工具。
python shellcode-encrypt.py <shellcode_file> <key>输出:shellcode_encrypted.bin + shellcode_encrypted.c
shellcode-obfuscate-ipv4.py
IPv4 地址混淆工具。
python shellcode-obfuscate-ipv4.py <shellcode_file>输出:shellcode_obfuscated_ipv4.c
gen_embed_data.py
内嵌数据生成脚本。从 shellcode_obfuscated_ipv4.c(或 payload_dll.c)提取 IPv4 数组和密钥,生成编译期 XOR 加密的 C 头文件。
python gen_embed_data.py输出:payload_data.h
问题排查
问题 1:解密后无法执行
排查步骤:
对比解密后字节与原始 Shellcode(前 50 字节)
确认 gen_embed_data.py 提取的密钥与加密时一致
确认 IPv4 数组完整(无截断)
问题 2:Shellcode 架构不匹配
原因:Loader 编译架构与 Shellcode 架构不一致。 解决:
64 位 Shellcode → GCC 默认编译(64 位)
32 位 Shellcode → 需 32 位 GCC 环境(MinGW32)
问题 3:虚拟机中无反应
原因:没有反沙箱退出逻辑 — 本版本设计为在任何环境都运行。 验证:在真实 Windows 机器上测试。
问题 4:Stomping 的 DLL 崩溃
原因:msimg32.dll 的 .text 段小于 Shellcode。 解决:Loader 内置回退逻辑,自动尝试 dcomp.dll → dwmapi.dll。
问题 5:编译报错找不到 payload_data.h
原因:未运行 gen_embed_data.py 生成头文件。 解决:先运行 python gen_embed_data.py,再编译。