hACKCASCAC/ObfusHunter

GitHub: hACKCASCAC/ObfusHunter

ObfusHunter 是一款基于 C++ 的 PE 文件静态分析工具,专门用于检测混淆、保护模式及 TCC 编译器签名,帮助安全研究人员快速评估二进制文件威胁。

Stars: 23 | Forks: 3

ObfusHunter Preview

🛡️ ObfusHunter

Advanced PE Obfuscation & Protection Detector


## 📌 概述 **ObfusHunter** 是一款基于 C++ 的闪电般快速的静态分析工具,旨在识别和分析 Windows 可移植可执行 (PE) 文件中的混淆技术。它主要专注于检测 `Obfus.h` 保护模式、垃圾代码插入、反调试机制、虚拟化标记以及字符串混淆循环。 无论您是在逆向工程恶意软件、分析打包的可执行文件,还是验证编译器签名(特别是 TCC),ObfusHunter 都能提供一份清晰的、包含十六进制地址的报告,列出每一个发现的可疑模式。 ## 🚀 功能 - **高速内存映射**:利用 `CreateFileMapping` 瞬时处理大型 PE 文件,避免陷入 I/O 瓶颈。 - **TCC (Tiny C Compiler) 识别**:通过自定义的 DOS 存根和 x86/x64 入口点 (EP) 签名,高精度检测 TCC 产物。 - **深度签名扫描**: - 🗑️ **垃圾代码**:识别栈破坏模式和虚拟指令。 - 🪲 **反调试**:检测硬件断点清除(`DR_CLEAN`)、`RDTSCP` 计时检查以及基于异常的陷阱。 - 💻 **虚拟化**:发现虚拟机分发器(`VM_DISPATCH_X86` / `X64`)和损坏的跳转。 - 🏷️ **水印与伪节**:查找 Enigma、Denuvo、Nuitka 的痕迹,以及典型的加壳器节名(如 `.vmp0`、`UPX0` 等)。 - 🧵 **字符串混淆**:启发式引擎,用于检测 `HIDE_STRING` 的逐字节栈构建序列(甚至包括定制的 TCC 变体)。 - **RWX 异常检测**:标记具有读/写/执行权限的节。 - **密度评分**:计算标记密度(每 KB 命中数)和威胁分数,以衡量混淆的强度。 ## 🛠️ 使用方法 ObfusHunter 是一个命令行工具。只需将目标 PE 文件的路径作为参数传递即可。 ``` ObfusHunter.exe ``` ### 示例输出 ``` ____ _ __ _ _ _ / __ \| | / _| | | | | | | | | | | |__ | |_ _ _ ___| |__| |_ _ _ __ | |_ ___ _ __ | | | | '_ \| _| | | / __| __ | | | | '_ \| __/ _ \ '__| | |__| | |_) | | | |_| \__ \ | | | |_| | | | | || __/ | \____/|_.__/|_| \__,_|___/_| |_|\__,_|_| |_|\__\___|_| [ File Information ] Path: sample_protected.exe Size: 231424 bytes Arch: x64 EntryPoint: 0x1A420 [+] Compiler: Tiny C (TCC) Language: C [!] Obfus.h Protection: CONFIRMED Detection Score: 152.00 Marker Density: 0.34 hits/KB Detailed Detection Log (12 hits): RVA Offset Category Details ---------------------------------------------------------------------- 0x00001000 0x00000400 Compiler Tiny C (TCC) detected by Linker/Stub 0x0001A420 0x00018820 Compiler TCC x64 EntryPoint 0x00021A50 0x0001FE50 String Obf HIDE_STRING sequence (15 chars) 0x0002B100 0x00029500 Anti-Debug AD_DR_CLEAN ``` ## 🏗️ 构建说明 该项目为 Windows 构建,使用 MSVC。 1. 在 **Visual Studio** (2019/2022) 中打开 `ObfusHunter.sln`。 2. 将配置设置为 `Release` / `x64`(或根据您的目标选择 x86)。 3. 生成解决方案(`Ctrl + Shift + B`)。 ## 🧠 内部原理(面向分析师) ### 启发式规则与字节特征 ObfusHunter 使用支持通配符(`-1`)的字节模式匹配。 例如,`HIDE_STRING` 的检测并非一个简单的静态签名。该引擎会遍历二进制文件,寻找连续的栈赋值操作: - `mov byte ptr [rbp+YY], XX` (`C6 45 YY XX`) - `mov byte ptr [rsp+YY], XX` (`C6 44 24 YY XX`) - 以及 TCC 特有的变体:`mov eax, XX; mov [rbp+YY], al` 如果找到这类操作的链(最少 6 个字节),它就会将其标记为一个字符串混淆构建循环,并精确揭示字符串在内存中被动态构建的位置。 ### TCC 识别 由于恶意软件作者偏爱轻量级编译器,ObfusHunter 会检查以下特定属性: - TCC 独有的自定义 DOS 存根。 - 链接器主版本号/次版本号。 - 标准的 TCC 函数序言(`push rbp; mov rbp, rsp; sub rsp, ...`)与入口点地址的匹配。 ## ⚖️ 免责声明 本工具专为逆向工程师、恶意软件分析师和安全研究人员设计。旨在用于教育目的以及分析您有权检查的二进制文件。
标签:C++工具, DAST, DNS 反向解析, PE文件分析, RWX异常检测, TCC识别, URL发现, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 内存映射, 反调试检测, 垃圾代码检测, 威胁评分, 字符串混淆, 安全意识培训, 安全检测, 恶意软件分析, 打包器检测, 技术栈识别, 水印检测, 混淆检测, 端点可见性, 签名扫描, 虚拟化检测, 逆向工程, 静态分析