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, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 代码混淆, 反汇编引擎, 可视化, 基础块, 恶意代码分析, 指令解码, 控制流图, 数据擦除, 无依赖库, 白帽子, 系统运维工具, 编译原理, 逆向工程, 配置文件, 静态分析