Chefjdeep/B12
GitHub: Chefjdeep/B12
一个基于LLM的智能反编译与恶意软件分析平台,集成Ghidra与机器学习以自动化逆向工程并可视化威胁。
Stars: 0 | Forks: 0
# B12 - 智能反编译与恶意软件分析平台(基于LLM)
[](https://www.python.org/downloads/)
[](https://flask.palletsprojects.com/)
[](https://ghidra-sre.org/)
[](https://github.com/albertan017/LLM4Decompile)
[](#disclaimer)
# **B12 - 智能二进制分析平台**
## **项目概述**
**B12** 是一个先进的二进制分析系统,将 **Ghidra 反编译** 与 **启发式增强** 和 **基于机器学习的恶意软件分析** 集成到统一的 Web 界面中。该平台自动化了从二进制文件上传到威胁可视化的逆向工程工作流程。
## **免责声明**
**警告**:本项目仅限**教育和研究用途**。切勿在生产系统上执行反编译或生成的代码。请仅在隔离环境中使用。
## **核心功能**
### **多功能增强**
- **智能函数提取**:逐个处理所有用户定义的函数
- **库函数过滤**:自动跳过标准库函数(如 printf、malloc 等)
- **上下文感知命名**:保留原始函数名并进行智能恢复
- **非破坏性输出**:增强后的函数追加在原始函数下方,便于对比
### **增强型安全分析**
- **8 类威胁**:DATA_EXFILTRATION、PERSISTENCE、PRIVILEGE_ESCALATION、SURVEILLANCE、DESTRUCTIVE、EVASION、DENIAL_OF_SERVICE、CREDENTIAL_THEFT
- **实时雷达图**:交互式威胁可视化
- **行为映射**:将机器学习行为转换为安全类别
- **全面报告**:逐函数详细分析
### **高级分析**
- **每个函数的统计信息**:字符级别的改进追踪
- **性能指标**:处理时间和增强比例追踪
- **威胁评分**:基于模式识别的严重性评估
- **语言分类**:自动检测源代码编程语言
## **快速开始**
### **前置条件**
```
Python 3.8+
Java 17+ (for Ghidra)
Ghidra 11.0.3+ (Public/Enterprise)
```
### **安装**
1. **克隆并设置**
```
# 创建虚拟环境
python3 -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# 安装依赖项
pip install -r requirements.txt
```
2. **配置 Ghidra**
- 在 `app.py` 中设置 `GHIDRA_PATH` 为你的 Ghidra 安装路径
- 示例:`"ghidra/ghidra_11.0.3_PUBLIC/support/analyzeHeadless"`
3. **配置安全 API**
- 在 `app.py` 中设置 `SECURITY_API_URL` 为你的机器学习分析端点
- 示例:`"http://10.208.53.33:5000/analyze"`
4. **启动服务**
```
python app.py
```
访问地址:`http://localhost:5000`
## **项目结构**
```
B12/
├── app.py # Main Flask application
├── enhance.py # Heuristic enhancement module
├── classifier/ # Language classification
│ └── predict_xgb.py
│ └── feature_extractor.py # XGBoost classifier
├── templates/
│ └── index.html # Web interface
├── Ghidra_decompiled/ # Original Ghidra outputs
├── Enhanced_Decompiled/ # Heuristic enhanced outputs
├── temp_saves/ # Temporary workspaces
├── ghidra/ # Ghidra installation
├── static/ # Test binaries
├── security_api.py # Security analysis API template
├── requirements.txt
└── README.md
```
## **API 端点**
### **分析端点**
| 端点 | 方法 | 描述 |
|------|------|------|
| `/ghidra_decompile` | POST | 仅 Ghidra 反编译 |
| `/ghidra_enhance` | POST | Ghidra + 启发式增强 |
| `/security_analyze` | POST | 安全分析(发送增强后的文件) |
| `/classify` | POST | 语言分类 |
| `/enhance_code` | POST | 增强现有反编译代码 |
### **工具端点**
| 端点 | 方法 | 描述 |
|------|------|------|
| `/status` | GET | 服务器健康检查 |
| `/get_current_file` | GET | 获取当前分析文件 |
| `/` | GET | Web 界面 |
## **使用流程**
### **步骤 1:上传二进制文件**
- 支持格式:`.bin`、`.py`、`.elf`、`.exe`、`.so`、`.dll`、`.o`、`.rom`
- 拖放或点击上传
### **步骤 2:运行分析**
1. **Ghidra 标签页** → 点击 ▶️ 进行反编译
2. **启发式增强标签页** → 点击 ▶️ 获取优化后的代码
3. **安全标签页** → 点击 ▶️ 进行威胁分析(需先完成 Ghidra 反编译)
### **步骤 3:查看结果**
- **原始视图**:原始二进制/目标文件内容
- **Ghidra 输出**:反编译后的 C 代码
- **增强代码**:经过启发式优化并提升可读性的代码
- **安全分析**:威胁条、恶意函数检测、行为分析
## **配置**
### **关键设置(`app.py`)**
```
GHIDRA_PATH = "ghidra/ghidra_11.0.3_PUBLIC/support/analyzeHeadless"
GHIDRA_SCRIPT = "ghidra/decompile.py"
SECURITY_API_URL = "http://10.208.53.33:5000/analyze"
PROJECT_NAME = "tmp_ghidra_proj"
TIMEOUT = 120 # Ghidra timeout in seconds
```
### **安全类别**
```
SECURITY_CATEGORIES = [
"DATA_EXFILTRATION",
"PERSISTENCE",
"PRIVILEGE_ESCALATION",
"SURVEILLANCE",
"DESTRUCTIVE",
"EVASION",
"DENIAL_OF_SERVICE",
"CREDENTIAL_THEFT"
]
```
## **安全分析集成**
### **预期的 API 响应格式**
你的机器学习端点应返回:
```
{
"functions": [
{
"function": "function_name",
"classification": {
"malicious": true,
"confidence": 0.85,
"behavioral_actions": [
{"behavior": "file_access", "apis": ["fwrite"], "reason": "..."}
],
"explanation": "Detected DATA_EXFILTRATION..."
},
"signals": {
"triggers": [
{"type": "api_category", "category": "file_access", "count": 1}
],
"raw_counts": {"total_api_calls": 6}
}
}
]
}
```
### **行为到类别的映射**
- `file_access` → DATA_EXFILTRATION
- `memory` → EVASION
- `network` → DATA_EXFILTRATION
- `process` → PRIVILEGE_ESCALATION
- `registry` → PERSISTENCE
- `antidebug` → EVASION
- `destructive` → DESTRUCTIVE
- `crypto` → CREDENTIAL_THEFT
## **故障排除**
### **常见问题**
1. **未找到 Ghidra**:检查 `app.py` 中的 `GHIDRA_PATH`
2. **缺少 Java 运行时**:安装 OpenJDK 17+
3. **安全分析 API 不可用**:验证 `SECURITY_API_URL` 连接
4. **反编译超时**:增大 `TIMEOUT` 值以处理大型二进制文件
### **调试模式**
```
# 启用调试打印
print(f"🔍 [DEBUG] Message here")
```
## **性能说明**
- **Ghidra 反编译**:30-120 秒(取决于二进制文件大小)
- **启发式增强**:每个函数 1-5 秒
- **安全分析**:取决于远程 API 响应时间(超时:180 秒)
- **内存占用**:中等(大型二进制文件约 200-500MB)
## **引用**
### **Ghidra 反工程框架**
```
@software{ghidra,
author = {National Security Agency (NSA)},
title = {Ghidra - Software Reverse Engineering Framework},
year = {2019},
publisher = {National Security Agency},
url = {https://ghidra-sre.org/},
note = {Version 11.0.3}
}
```
### **参考资料**
1. **Ghidra 官方文档** – 美国国家安全局,《Ghidra:开源软件逆向工程套件》,2019。获取地址:https://ghidra-sre.org/
2. **研究中的 Ghidra** – K. Nance、B. Hay 和 R. De Donato,《Ghidra》,收录于《逆向工程:入门》,IEEE Security & Privacy,2020。
### **致谢**
### **许可证信息**
Ghidra 在 **Apache License 2.0** 下发布。完整许可证文本位于:
https://github.com/NationalSecurityAgency/ghidra/blob/master/LICENSE
## **团队**
## 方法论说明
在项目创建过程中采用了当代 AI 开发工具作为现代软件工程实践的一部分。
## **许可证**
本项目仅限教育和研究用途。
标签:AMSI绕过, Apex, C2, DAST, Flask, Ghidra, LLM4Decompile, Python, Web平台, 上下文感知命名, 云资产清单, 函数提取, 协议分析, 反编译增强, 后端开发, 威胁分类, 威胁可视化, 威胁检测, 安全机器学习, 库过滤, 恶意软件分析, 拒绝服务, 教育研究, 数据外渗, 无后门, 智能反编译, 机器学习, 权限提升, 监控, 研究用途, 破坏性, 自动化逆向工程, 行为映射, 规避, 逆向工具, 逆向工程, 雷达图可视化, 非破坏性输出