xec412/FoliageWithStackDuplication

GitHub: xec412/FoliageWithStackDuplication

基于 APC 和 Stack Duplication 的高级 Sleep 混淆技术实现,用于在进程休眠时加密内存并规避扫描检测。

Stars: 0 | Forks: 0

# Foliage With Stack Duplication - 高级 Sleep 混淆技术 ![演示](https://raw.githubusercontent.com/xec412/FoliageWithStackDuplication/main/docs/screenshots/ImageDemo1.png) **基于 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, 内存规避, 客户端加密, 数据展示, 红队