WingC4D/Control-Flow-Graphing-Algorithm
GitHub: WingC4D/Control-Flow-Graphing-Algorithm
一个面向 x64 Windows 的轻量级零依赖控制流图生成器与长度反汇编引擎,专为逆向工程和安全研究设计。
Stars: 1 | Forks: 0
# 控制流图生成算法
## 概述
一个轻量级、无依赖的控制流图 (CFG) 生成器和长度反汇编引擎 (LDE),使用 C++ 从零编写。该引擎专为 x64 Windows 环境设计,能够解析复杂的指令集(包括 `ModR/M`、`SIB` 和 `REX` 前缀),从而准确映射执行流、解析相对跳转,并在执行路径交错时动态拆分基本块。
## 使用的技术
## 主要特性
- **自定义长度反汇编引擎 (LDE):** 完全自包含的 x86/x64 指令长度解码,采用高度优化的 256 字节特征映射,避免了像 Capstone 或 Zydis 这样繁重的外部依赖。
- **动态基本块生成:** 将目标函数建模为有向图,正确捕获 `flowTo` 和 `flowFrom` 关系。
- **执行路径分叉:** 准确计算跳转倾向,并在评估条件 (`jcc`) 和无条件分支时即时拆分基本块。
- **序言与寄存器状态捕获:** 正确识别非易失性寄存器保存和 REX 前缀边界(例如 `r12`、`r13`)。
## 压力测试与概念验证
该引擎已在 `KernelBase.dll` 内部的 `CreateProcessInternalW` 上成功通过了压力测试——这是 Windows API 中圈复杂度最高的函数之一。
**在 `CreateProcessInternalW` 上的结果:**
- 成功映射超过 **230 个不同的基本块**。
- 追踪到的执行路径分支高度(逻辑嵌套深度)达到 **85 层**。
- 在追踪过程中零崩溃、无限循环或指令边界错位。
## 技术栈
- C++20(智能指针、``、`constexpr` 位掩码)
- WinAPI / Windows 内部机制
## 技术细节与用例
此架构专为逆向工程、漏洞利用开发和恶意软件分析而构建。通过保持二进制占用空间最小化且完全自包含,该引擎有助于:
- **函数挂钩与 Trampoline 生成:** 安全地越过位于函数序言处的 EDR Hooks,以识别用于内联挂钩的干净代码块。
- **代码洞 寻找:** 以编程方式映射高度受审查的 DLL 中的“死”基本块或对齐填充。
- **自动化分析:** 无需依赖调试器即可深入编程洞察函数执行。(二进制分析)
- **SSN 映射**(恶意软件开发)。
标签:C++, CFG, LDE, Mutation, Windows内核, x86-x64, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码混淆, 反汇编引擎, 可视化, 基础块, 恶意代码分析, 指令解码, 控制流图, 数据擦除, 无依赖库, 白帽子, 系统运维工具, 编译原理, 逆向工程, 配置文件, 静态分析