dwin-gharibi/abgoosht
GitHub: dwin-gharibi/abgoosht
一个结合经典技术与 AI Agent 的 MiniC 代码混淆与反混淆研究框架,支持多种交互方式和可扩展的转换 pipeline。
Stars: 0 | Forks: 0
# 🥘 Abgoosht — 经典与基于 Agent 的 MiniC 混淆器与反混淆器
[](https://www.python.org/downloads/release/python-311/)
[](https://hub.docker.com)
[]()
[]()
[](https://gradio.app/)
[]()
[](#%EF%B8%8F-disclaimer--security-notes)
## 🥘 什么是 abgoosht?
**abgoosht** 是一个综合性的 **MiniC 代码混淆与反混淆框架**,兼具经典和 AI Agent 驱动的转换能力。
- 💾 **输入**:MiniC/C 风格源代码
- 📤 **输出**:根据模块不同,输出加固或澄清后的源代码
- 🧩 **模式**:CLI、Gradio Web UI、Python API
- 🛡️ **用途**:安全研究、教学、代码分析、AI 驱动的转换实验
### 🧠 主要功能
- **Obfuscator (混淆器)**:使代码更难阅读/分析
- **Deobfuscator (反混淆器)**:尝试恢复被混淆代码的可读性
- **AI Agent 模块**:使用 ML/AI 模型或规则进行混淆和反混淆,实现高级、自适应的转换
## 🏗 架构概览
Abgoosht 系统设计为一个模块化 pipeline,通过多个转换阶段处理 MiniC 代码。其核心集成了一个用 C++ 编写的自定义解析和转换引擎,负责词法分析、解析、抽象语法树生成和代码重新生成。围绕这一核心的是一个编排层,连接用户界面、AI Agent 和基准测试工具。系统支持混淆和反混淆两种流程,允许根据所选模式让同一架构反向运行。

## 🔄 处理流程与数据流
用户输入通过 Web UI 或 CLI 等界面进入系统,随后被路由到转换 pipeline。Pipeline 从词法分析和解析开始,构建代码的中间表示。该表示随后通过各种转换模块,包括经典混淆技术和 AI 驱动的转换。处理完成后,代码将被重新生成,并可选择使用基准测试容器进行评估,以衡量正确性、性能和结构变化。来自 AI Agent 的反馈也可以循环回系统,以迭代优化转换。
## 🤖 AI 集成与可扩展性
Abgoosht 设计的一个关键方面是集成了 AI Agent,以增强混淆和反混淆过程。这些 Agent 可以分析代码结构,建议转换,并根据上下文动态调整策略。系统具有可扩展性,允许开发者添加新的转换技术,插入不同的 AI 模型,或自定义解析规则。这种灵活性使 Abgoosht 适用于研究、实验以及需要不断演进代码转换策略的实际应用。
## 🚩 目录
1. [功能特性](#features)
2. [项目结构与模块](#project-structure--modules)
3. [快速开始](#quick-start)
4. [混淆器模块](#obfuscator-module)
5. [反混淆器模块](#deobfuscator-module)
6. [AI Agent 驱动的转换](#ai-agent-based-transformations)
7. [扩展系统](#extending-the-system)
8. [示例](#examples)
9. [使用场景](#usage-scenarios)
10. [故障排除与常见问题](#troubleshooting--faq)
11. [路线图](#roadmap)
12. [贡献指南](#contributing)
13. [致谢](#acknowledgments)
14. [免责声明与安全说明](#-disclaimer--security-notes)
15. [许可证](#license)
## ⭐️ 功能特性
- **多重转换混淆器**:20 多种技术(重命名、死代码、块重排序等)
- **反混淆器**:基于规则和实验性 AI 方法用于代码恢复
- **Gradio Web UI**:可视化、点击式界面,用于上传源代码和调整参数
- **CLI 工具**:批量和自动化工作流
- **Docker 化**:跨平台和可复现的环境
- **模块化架构**:轻松添加/移除技术
- **基准测试工具**:评估转换的质量、速度和弹性
- **AI 集成**:可选的 transformer/LLM 智能混淆和反混淆(参见 [AI Agent 驱动的转换](#ai-agent-based-transformations))
## 🏗 项目结构与模块
```
abgoosht/
├── main.py # CLI tool for obfuscation
├── gradio_app.py # Gradio-based web app UI
├── requirements.txt # Python dependencies
├── Dockerfile # Container build script
├── benchmark_runner.py # Benchmark automation
│
├── obfuscator/ # All classical and AI-based obfuscators
│ ├── parser.py
│ ├── transformer.py
│ ├── generators.py
│ ├── techniques/ # Individual technique classes per file
│ └── ...
│
├── deobfuscator/ # Rule-based & AI agent-based deobfuscation
│ ├── parser.py
│ ├── transformer.py
│ ├── generators.py
│ ├── techniques/ # Individual technique classes per file
│ └── ...
│
├── abgoosht_parser/ # Custom parser for the MiniC grammar
├── examples/ # Example MiniC files (original, obfuscated, restored)
└── ...
```
## 🚀 快速开始
### 前置条件
- Python 3.11+
- (可选)Docker
### 克隆
```
git clone https://github.com/dwin-gharibi/abgoosht.git
cd abgoosht
```
### 安装 Python 依赖
```
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### 命令行混淆
```
python main.py -i input.mc -o output.mc
```
### 启动 Web UI
```
python gradio_app.py
```
然后在浏览器中打开提供的 URL。
### Docker 化使用
```
docker build -t abgoosht .
docker run -p 80:80 abgoosht
```
## 🌀 混淆器模块
混淆器应用分层代码转换,以最大化静态分析的难度。
### 支持的技术
## ♻️ 反混淆器模块
尝试**恢复原始代码结构和可读性**。适用于:
- 安全分析 / 取证
- 逆向工程教学演示
- 评估混淆的有效性
### 方法:
- **基于规则**:模式匹配混淆结构并尝试还原。
- **重构**:移除/重构虚拟/不透明/垃圾块。
- **注释清理**:剥离或改写误导性注释。
- **AI Agent**:使用 LLM 或 transformer 模型将混淆代码“翻译”回地道的 MiniC。
*状态:实验性;结果可能因模型质量而异。*
## 🤖 基于 AI Agent 的混淆器与反混淆器
### 这里的“AI Agent”是什么?
abgoosht 中的 **AI agent** 指的是一个(可能是基于 LLM 的)Python 组件,它分析代码,旨在根据*上下文*选择/调整混淆或反混淆转换:
- 可以使用预训练或微调的语言模型(如 GPT, Llama 等)
- 基于代码语义而不仅仅是语法模式做出转换决策
- 可能生成新颖的混淆或推断人类意图的结构
## 🛠️ 扩展系统
- **添加新混淆器**:只需在 `obfuscator/techniques/` 中放入文件/类,并在 `main.py` 中注册。
- **添加新反混淆器**:在 `deobfuscator/` 中采用类似模式。
## 💡 示例会话
### CLI 混淆
```
python main.py -i clean_example.mc -o garbled_example.mc
```
### 反混淆
```
python deobfuscator/main.py -i garbled_example.mc -o restored_example.mc
```
## 📚 使用场景
- **研究人员**:建模和测量各种混淆策略的弹性。
- **学生与教师**:演示编译器/转换概念。
- **安全分析师**:评估或测试代码加固技术。
- **AI 开发者**:使用语言模型进行代码转换实验。
## 🧩 目录结构详解
| 路径 | 用途 |
|----------------------------|-----------------------------------------|
| main.py | 混淆器 CLI 工具 |
| gradio_app.py | 启动 Gradio UI |
| benchmark_runner.py | 基准测试、实验脚本 |
| requirements.txt | Python 依赖 |
| Dockerfile | 可复现容器构建 |
| obfuscator/ | 经典和基于 AI 的混淆器代码 |
| obfuscator/techniques/ | 每个文件 = 一种混淆策略 |
| deobfuscator/ | 经典和基于 AI 的反混淆器 |
| abgoosht_parser/ | MiniC/C 解析器实现 |
| examples/ | MiniC 示例/测试代码 |
## 🧐 优势与局限
### 优势
- 灵活、模块化、可扩展,适用于多种工作流
- 统一经典与基于 ML 的方法
- 教育性:代码结构清晰、注释丰富、易于理解
- 开箱即用,支持 Docker 和 UI
### 局限
- AI 模块需要额外设置(API 密钥、本地模型)
- 项目专用于 MiniC,而非 C/C++
- 不设计用于商业级混淆保护
## 📝 路线图
- [ ] AI agent:使用开源 LLM 进行预配置推理
- [ ] 添加更多转换模式(结构性、语义性)
- [ ] 扩展反混淆器的推理能力
- [ ] CI/CD 和自动徽章
- [ ] 更多示例/教程
- [ ] 公共 API 端点
## ❓ 故障排除与常见问题
#### 问:代码无法混淆或返回错误?
- 检查输入是否符合 MiniC 标准。
- 确保所有依赖项已安装。
#### 问:这能处理庞大的代码库吗?
- 性能可能有所不同。混淆专为中小型 MiniC/C 风格程序设计。
#### 问:反混淆器能完全恢复我的代码吗?
- 没有工具能保证“完美”反混淆,尤其是在经过重度/AI 转换后——请将其视为尽力而为。
## 🤝 贡献指南
1. Fork、分支、PR!
2. 尽量保持风格一致,并记录新的混淆技术。
3. 特别欢迎 AI/ML 贡献。
## 🙏 致谢
- Python 与 Gradio 团队
- OpenAI、Meta、HuggingFace LLM 贡献者(用于 AI 模块)
- 早期测试者与审阅者
## 🛡️ 免责声明与安全说明
- abgoosht **仅供研究和教育目的**。
- 它**不**用于生产级软件保护。
- 作者**不对**因生成代码引起的滥用或法律问题负责。
点击查看完整列表
- **VariableRenamer**:随机化变量名 - **DeadCodeInserter**:添加不执行的代码以制造混淆 - **MisleadingComments**:添加误导性/不相关的注释 - **IrrelevantLogging**:引入无信息量的日志 - **FunctionSplitter**/**InlineFunctions**:代码拆分/内联展开 - **ExprComplexifier**:将简单表达式转换为复杂表达式 - **AliasGenerator**:引入变量别名和垫片 - **ConstantFolding**/**MacroHell**:常量转换和宏使用 - **ReorderBlocks**:更改块顺序 - **DummyControl**:插入假分支/循环 - **TypeMisleading**/**StructObfuscator**:模糊类型信息 - **ControlFlattener**:使控制流更难跟踪 - **JunkInserter**:注入多余(但安全)的代码 - **OpaquePredicate**/**FakeRecursion**:使用误导性条件和调用模式 - **LoopUnroller**, **FunctionSplitter** - **Custom**:在 `obfuscator/techniques/` 中轻松添加你的技术标签:Apex, C++, C2, DNS 反向解析, Docker, Gradio, LLM, MiniC, odt, Python, TCP SYN 扫描, Unmanaged PE, Web UI, 云安全监控, 云资产清单, 人工智能, 代码反混淆, 代码安全, 代码混淆, 内存取证对抗, 安全防御评估, 恶意代码分析, 抽象语法树, 数据擦除, 无后门, 机器学习, 模块化框架, 漏洞枚举, 用户模式Hook绕过, 编程语言处理, 编译原理, 网络安全, 请求拦截, 软件加固, 逆向工具, 逆向工程, 配置文件, 隐私保护, 静态分析