xec412/FoliageWithStackDuplication
GitHub: xec412/FoliageWithStackDuplication
基于 APC 和 Stack Duplication 的高级 Sleep 混淆技术实现,用于在进程休眠时加密内存并规避扫描检测。
Stars: 0 | Forks: 0
# Foliage With Stack Duplication - 高级 Sleep 混淆技术

**基于 APC 且带有 Stack Duplication 的 Sleep 混淆技术**
## 概述
**Foliage** 是一种高级的 sleep 混淆技术,允许进程对自身的内存进行加密,并在睡眠时躲避内存扫描器和分析工具的检测。
它通过利用异步过程调用、经由 `NtContinue` 的 ROP 链,以及谨慎的线程上下文操作来实现这一点。
本项目是 **MalDev Academy** 中 **"Foliage With Stack Duplication"** 挑战的修改版本。
## 核心功能
- 使用 `SystemFunction032` (RC4) 进行内存加密和解密
- Stack Duplication 与合法的调用栈伪装
- 通过 APC Queue + `NtContinue` 执行 ROP 链
- 使用 `NtQuerySystemInformation` 进行自定义线程枚举
- 完全动态的 NT API 解析
- 带有大型栈的挂起线程,用于执行 ROP 操作
## 修改说明
在 MalDev Academy 原版的挑战中,线程枚举是使用 `CreateToolhelp32Snapshot` + `Thread32First/Next` 来完成的。
我修改了这部分逻辑,改用 **`NtQuerySystemInformation(SystemProcessInformation)`**,这是一种更原生、更底层的线程发现方法。
我在完成该挑战后创建了本仓库,用于记录我的学习过程,并将修改后的代码作为参考保留。
## 免责声明
本项目仅供**学习与教育目的**使用。
其目的仅在于学习 Windows 内部原理和高级规避技术。
作者不赞成或鼓励以任何恶意方式使用此代码。
## 参考
- 原版 FOLIAGE 技术:https://github.com/y11en/FOLIAGE
- Austin Hudson (realoriginal) – 原版 Foliage 技术的开发者
- MalDev Academy:https://maldevacademy.com
## 编译说明
1. 克隆本仓库:
git clone https://github.com/xec412/FoliageWithStackDuplication.git
2. 使用 Visual Studio 打开 .sln 文件
3. 编译解决方案(推荐使用 x64 Release 模式)。
4. 运行生成的可执行文件。
本仓库作为我 MalDev Academy 学习之旅的一部分上传至 GitHub。
请遵守道德规范。
标签:C/C++, DNS 反向解析, OpenAI, UML, Windows底层, 事务性I/O, 内存规避, 客户端加密, 数据展示, 红队