MethodWhite/Noctua-C
GitHub: MethodWhite/Noctua-C
高性能 C 语言逆向工程与取证分析框架,支持多格式二进制加载并提供反编译、侧信道分析等 20 余个分析模块。
Stars: 4 | Forks: 2
**Noctua-C** 是一个用 **C** 编写的二进制逆向工程和取证分析框架,采用 **Clean Architecture** 和 **SOLID 设计模式**设计。它支持 8 种二进制格式、20 多个分析模块、自有的 **Intermediate Language (IL)**、**伪 C 代码反编译器** 以及 **类型系统**。
## ✨ 特性
### 加载器 (Loaders) — 8 种格式
| 格式 | 二进制文件 | 状态 |
|---------|----------|--------|
| **ELF** | Linux, IoT, firmwares | ✅ 完整 |
| **PE** | Windows EXE/DLL | ✅ 完整 |
| **Mach-O** | macOS/iOS | ✅ 32/64位 + swap |
| **DEX** | Android APK | ✅ 完整 |
| **WASM** | WebAssembly | ✅ 节 (Sections) + 自定义 |
| **WebP** | 图像 + EXIF | ✅ TIFF + chunks |
| **FSB5** | FMOD 音频库 | ✅ V0/V1 |
| **Unity** | UnityFS assets | ✅ 头部 + 数据块 |
### 模块 — 20+ 种分析
| 类别 | 模块 |
|-----------|---------|
| **🔐 Crypto** | `aes_sca` · `aes_key_extract` · `aes_key_tracer` · `aes_emulator` |
| **📱 Mobile** | `il2cpp_analysis` · `il2cpp_dumper` · `il2cpp_key_extractor` · `il2cpp_strings_extractor` |
| **🔍 核心 RE** | `decompiler` · `cs_disassembler` · `binary_analysis` · `xref_analyzer` · `type_recovery` |
| **⚡ Side-Channel** | `branch_timing` · `sca_timing` |
| **📊 Data** | `dataflow` · `process_memory` |
| **🎵 多媒体** | `audio_extractor` · `unity_data_extractor` |
### 🧠 Intermediate Language + 反编译器
```
ASM (AArch64/x86) → [Lifter] → IL (Noctua IR) → [Decompiler] → Pseudocode C
```
- 自有的 IR,包含 20+ 种表达式和 8 条指令
- 类 SSA 变量、标签 (labels)、基本块
- 生成带有控制结构 (if/else) 的 C 代码
## 🏗️ 架构
```
┌────────────────────────────────────────────────────────┐
│ Interface Layer CLI (main.c) · API (noctua_api.c) │
├────────────────────────────────────────────────────────┤
│ Application Layer Pipeline · Decompiler · Modules │
├────────────────────────────────────────────────────────┤
│ Domain Layer Config · Result · IL · Type System │
├────────────────────────────────────────────────────────┤
│ Infrastructure Loaders · Lifter · Signal · Utils │
└────────────────────────────────────────────────────────┘
```
**模式:** Strategy · Registry · Pipeline · Config Object · Result/Monad · IR · Visitor · Adapter · Facade
## 🔧 编译
```
git clone https://github.com/MethodWhite/Noctua-C.git
cd Noctua-C
make
```
**依赖项:** `capstone` · `fftw3` (可选)
| 命令 | 结果 |
|---------|-----------|
| `make` | `noctua` + `lib/libnoctua.a` |
| `make test` | 编译并运行测试 |
| `make agent` | Android Frida Agent |
| `make clean` | 清理 build |
## 🚀 用法
```
# 完整分析
./noctua /bin/ls
# 特定模块
./noctua /bin/ls dataflow
./noctua /bin/ls decompiler
# 其他格式
./noctua malware.exe
./noctua classes.dex
./noctua imagen.webp
```
### 作为库使用
```
#include "noctua.h"
NoctuaConfig cfg = noctua_config_default();
noctua_run_analysis("binario", NULL, cfg);
```
## 🧩 扩展
- [添加 Loaders 指南](CONTRIBUTING.md)
- [添加 Modules 指南](CONTRIBUTING.md)
## 📊 Roadmap
- [x] 8 个多格式 loaders
- [x] 模块化 pipeline
- [x] IL + 基础 Decompiler
- [x] 类型系统
- [x] Clean Architecture + SOLID
- [ ] 高级 Decompiler (loops, switch)
- [ ] DWARF parser
- [ ] Binary diffing
- [ ] Python bindings
- [ ] GUI (GTK/Qt)
标签:DNS重绑定攻击, Wayback Machine, 二进制分析, 云安全监控, 云安全运维, 云资产清单, 反汇编, 客户端加密, 数字取证, 自动化脚本, 逆向工程, 静态分析