基于 Claude Code 的免杀技术研究与 Shellcode Loader 生成框架。
本项目是一个 Claude Code 插件,通过 SubAgents 和 Skills 实现:
| Agent | 功能 | Skill |
|---|---|---|
| research-agent | 搜索 GitHub 技术,分析代码模式,更新知识库 | research |
| loadergen-agent | 从 loader 知识库组合组件,生成 loader | loader_generate |
| evasion-agent | 将 evasion 技术集成到现有 loader | evasion_integrate |
| 依赖 | 版本要求 | 用途 |
|---|---|---|
| Python | 3.8+ | 知识库管理脚本 |
| MinGW-w64 | 最新版 | 编译 Windows 可执行文件 |
| GitHub CLI (gh) | 2.0+ | 搜索 GitHub 仓库和代码 |
| Claude Code | 最新版 | 主框架 |
# 使用 winget 安装
winget install Python.Python.3.12
# 或从官网下载
# https://www.python.org/downloads/# 使用 winget 安装
winget install MSYS2.MSYS2
# 安装后,在 MSYS2 终端中运行:
pacman -S mingw-w64-x86_64-gcc
# 添加到 PATH (PowerShell 管理员)
$env:PATH += ";C:\msys64\mingw64\bin"
# 永久添加
[Environment]::SetEnvironmentVariable("PATH", $env:PATH + ";C:\msys64\mingw64\bin", "User")
# 验证安装
x86_64-w64-mingw32-gcc --version# 使用 winget 安装
winget install GitHub.cli
# 登录 GitHub
gh auth login
# 验证安装
gh --version
gh auth status# 使用 npm 安装 (需要 Node.js)
npm install -g @anthropic-ai/claude-code
# 或使用官方安装器
# https://github.com/anthropics/claude-code
# 验证安装
claude --version# Ubuntu/Debian
sudo apt update
sudo apt install python3 python3-pip mingw-w64 gh
# macOS (Homebrew)
brew install python mingw-w64 gh
# 安装 Claude Code
npm install -g @anthropic-ai/claude-code
# 登录 GitHub
gh auth login将项目作为 Claude Code 的工作目录:
# 进入项目目录
cd "D:\Dev\Agent\LoaderSubAgents\LoaderSub Agents"
# 启动 Claude Code
claude
# Claude Code 会自动加载 .claude/ 目录下的配置Claude Code 会自动识别:
.claude/agents/- SubAgent 定义.claude/skills/- Skill 定义.claude/commands/- 自定义命令
在用户主目录创建全局配置:
# Windows
notepad %USERPROFILE%\.claude\CLAUDE.md
# Linux/macOS
nano ~/.claude/CLAUDE.md添加项目路径:
# 项目路径
- D:\Dev\Agent\LoaderSubAgents\LoaderSub Agents启动 Claude Code 后,使用以下命令验证:
# 查看可用命令
> /help
# 应看到:
# /research - Search GitHub for shellcode loader and evasion techniques
# /loader_generate - Generate shellcode loaders
# /evasion_integrate - Integrate evasion techniquesevasion-agent-teams/
├── .claude-plugin/
│ └── plugin.json
├── agents/
│ ├── research-agent.md # 研究技术
│ ├── loadergen-agent.md # 生成 loader
│ └── evasion-agent.md # 集成 evasion
├── skills/
│ ├── research/
│ │ └── SKILL.md # 搜索分析技能
│ ├── loader_generate/
│ │ └── SKILL.md # loader 生成技能
│ └── evasion_integrate/
│ └── SKILL.md # evasion 集成技能
├── commands/
│ ├── research.md # /research
│ ├── loader_generate.md # /loader_generate
│ └── evasion_integrate.md # /evasion_integrate
├── lib/
│ └── knowledge_manager.py
├── knowledge-base/
│ ├── evasion_techniques.json # Evasion 技术库
│ ├── loader_techniques.json # Loader 组件库
│ └── scenarios.json # 已生成记录
├── samples/
│ └── calc.bin # 测试 shellcode
├── output/ # 输出目录
└── README.md
搜索 GitHub 上的技术并更新知识库。
/research # 交互模式
/research "shellcode loader" # 搜索 loader
/research "API hashing C++" # 搜索特定技术从 loader 知识库生成 shellcode loader。
/loader_generate # 单个随机 loader
/loader_generate 5 # 批量生成 5 个
/loader_generate --executor callback # 指定执行方式
/loader_generate --complexity simple # 按复杂度筛选流程:
- 查询
loader_techniques.json获取组件库 - 检查
scenarios.json避免重复 - 生成组件组合
- 编译测试
- 记录结果
将 evasion 技术集成到用户提供的 loader。
/evasion_integrate /path/to/loader.c # 自动选择技术
/evasion_integrate /path/to/loader.c --type api_obfuscation # 指定类型
/evasion_integrate /path/to/loader.c --technique T001,T003 # 指定技术ID流程:
- 读取用户提供的 loader 源码
- 查询
evasion_techniques.json获取技术 - 分析兼容性
- 集成技术到代码
- 编译测试
- 报告变更
Evasion 技术库:
{
"techniques": [
{
"id": "T001",
"name": "API Hashing",
"evasion_type": "api_obfuscation",
"description": "通过哈希值动态解析API",
"code_template": "...",
"apis": ["LoadLibrary", "GetProcAddress"],
"complexity": "medium"
}
]
}Evasion 类型:
api_obfuscation- API 混淆string_obfuscation- 字符串混淆memory_evasion- 内存规避execution_evasion- 执行规避anti_analysis- 反分析amsi_etw_bypass- AMSI/ETW 绕过unhooking- 脱钩
Loader 组件库:
{
"component_library": {
"storage_methods": [...],
"memory_allocators": [...],
"data_copiers": [...],
"executors": [...]
}
}已生成的 loader 记录,用于去重。
用户请求
│
▼
┌─────────────────────────────────────────────────────┐
│ Claude Code 主 Agent │
└─────────────────────────────────────────────────────┘
│
├── /research ─────────────────────────────────────┐
│ │ │
│ ▼ │
│ research-agent │
│ │ │
│ ▼ │
│ 搜索 GitHub → 分析代码 → 写入知识库 │
│ │
├── /loader_generate ──────────────────────────────┤
│ │ │
│ ▼ │
│ loadergen-agent │
│ │ │
│ ▼ │
│ 查询组件库 → 检查 scenarios → 生成 → 测试 → 记录│
│ │
└── /evasion_integrate /path/to/loader.c ──────────┤
│ │
▼ │
evasion-agent │
│ │
▼ │
读取 loader → 查询 evasion 库 → 集成 → 测试 │
│
┌──────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ lib/knowledge_manager.py │
│ - JSON CRUD │
└─────────────────────────────────────┘
│
▼
knowledge-base/
# 1. 放置测试 shellcode
# 将 calc.bin 放入 samples/
# 2. 启动 Claude Code
cd "evasion-agent-teams"
claude
# 3. 使用命令
> 搜索 GitHub 上的 shellcode loader 技术
> /loader_generate 5
> /evasion_integrate ./output/loader_001.c --type api_obfuscation# 查看统计
python lib/knowledge_manager.py stats
# 添加 evasion 技术
python lib/knowledge_manager.py add-evasion \
--name "API Hashing" \
--type "api_obfuscation" \
--description "通过哈希值动态解析API" \
--apis "LoadLibrary,GetProcAddress" \
--complexity "medium"
# 添加 loader 组件
python lib/knowledge_manager.py add-component \
--type "executors" \
--name "ThreadPool Callback" \
--description "使用线程池回调执行"
# 查看组件库
python lib/knowledge_manager.py get-components
# 随机组合
python lib/knowledge_manager.py random-combination
# 导出/导入
python lib/knowledge_manager.py export --output backup.json
python lib/knowledge_manager.py import --input backup.json| Agent | 禁止 | 允许 |
|---|---|---|
| research-agent | 编译/执行外部代码,使用外部 shellcode | 分析模式,更新知识库 |
| loadergen-agent | 使用外部代码,使用外部 shellcode | 仅使用 samples/calc.bin |
| evasion-agent | 使用外部代码,执行恶意 shellcode | 仅修改用户代码,仅用 calc.bin 测试 |
MinGW-w64 未安装或未添加到 PATH。
# 检查安装
where x86_64-w64-mingw32-gcc
# 如果找不到,添加到 PATH
$env:PATH += ";C:\msys64\mingw64\bin"GitHub CLI 未安装或未登录。
# 安装
winget install GitHub.cli
# 登录
gh auth login
# 验证
gh auth status可能原因:
- GitHub CLI 未登录
- 网络连接问题
- API 速率限制
# 检查登录状态
gh auth status
# 检查速率限制
gh api rate_limit确保使用正确的 shellcode 格式:
samples/calc.bin应为原始二进制 shellcode- 支持 x64 Windows shellcode
# 验证 shellcode 格式
xxd samples/calc.bin | head -5确保目录结构正确:
.claude/
├── agents/
│ ├── research-agent.md
│ ├── loadergen-agent.md
│ └── evasion-agent.md
├── skills/
│ ├── research.md
│ ├── loader_generate.md
│ └── evasion_integrate.md
├── commands/
│ ├── research.md
│ ├── loader_generate.md
│ └── evasion_integrate.md
└── settings.local.json
检查 settings.local.json:
{
"enabledMcpjsonServers": [],
"permissions": {
"allow": [],
"deny": []
}
}MIT