VAHPEM/llm-deobfuscation-pipeline
GitHub: VAHPEM/llm-deobfuscation-pipeline
基于微调大语言模型的二进制反混淆辅助分析流水线,通过自动识别混淆模式并给出操作建议来加速逆向工程工作流。
Stars: 0 | Forks: 0
# LLM 反混淆流水线
AI 辅助的二进制分析逆向工程流水线。
本项目探索将大型语言模型(LLM)作为传统逆向工程工作流之上的决策层。该系统并非旨在替代 Ghidra 等工具,而是通过协助分类函数、检测混淆模式以及引导分析策略来增强它们的功能。
## 核心思想
现代逆向工程包含大量重复性分析工作:
- 识别相关函数
- 识别混淆模式
- 决定时间投入的重点
本项目引入了一个由 LLM 驱动的分析层,它能够:
- 理解反汇编代码和伪代码
- 推理函数行为
- 向分析师提供建议操作
## 功能特性
给定一个函数(x64),系统会分析:
- 反汇编代码
- 伪代码
- 结构特征
随后它会预测:
- `string_related` 或 `not_string_related`
并输出:
- 结构化的 JSON 分类结果
- 建议操作:
- `emulate_function`
- `ignore_function`
## 架构
`二进制文件 -> 特征提取 -> LLM (Qwen + LoRA) -> 决策输出`
### 输入
- 指令级别的反汇编代码
- 反编译器伪代码
- 工程化特征:
- 指令数量
- 循环数量
- xor/add/rol/ror 操作
- 内存写入模式
- 常量数据块大小
### 模型
- 基座模型:Qwen2.5-Coder-1.5B-Instruct
- 微调方式:LoRA
- 训练格式:带有严格 JSON 输出的对话式监督
### 输出示例
`{"label":"string_related","recommended_action":"emulate_function"}`
## 📊 数据集
旨在模拟真实 x64 逆向工程场景的合成数据集。
### 正类(示例)
- xor_const
- xor_rolling_key
- add_const
- sub_const
- xor_add_combo
- rol_const
- ror_const
- table_lookup_decode
- encoded_blob_decode
- wrapper_decoder_call
### 负类(示例)
- memcpy_like
- memset_zero_or_fill
- checksum_crc
- hash_djb2_fnv_like
- buffer_compare
- length_scan
- base64_encode_like
- hex_encode_like
- serialization_pack
- prng_state_update
- crypto_round_helper
- dispatcher_or_wrapper
### 核心设计目标
- 逼真的反汇编代码和伪代码
- 结构化的特征信号
- 多样化的混淆模式
- 困难负样本,以减少过拟合
## 当前状态
### 已实现
- 检测常见的字符串解密模式
- 正确拒绝简单的非解密函数
- 生成稳定的 JSON 输出格式
### 进行中
- 处理如下困难负样本:
- 编码例程
- 哈希函数
- 类加密循环
## 项目结构
`.`
`├── data/`
`│ ├── raw/ # 原始数据集 (jsonl)`
`│ └── processed/ # 可用于训练的数据`
`├── scripts/`
`│ ├── build_dataset.py`
`│ ├── train.py`
`│ ├── train_easy_negatives.py`
`│ ├── test_model.py`
`│ ├── resplit_dataset.py`
`│ └── (未来计划: inference + pipeline demos)`
`├── outputs/`
`│ └── lora_adapter/ # 训练好的适配器(已忽略)`
## 训练方法
- 对话式监督
- 严格的结构化输出(JSON)
- 分层数据集划分
- 迭代式改进:
1. 使用正样本和简单负样本进行训练
2. 引入较难的负样本
3. 完善决策边界
## 路线图
- 提升对困难负样本的鲁棒性
- 扩展数据集的多样性
- 与真实的逆向工程工具(如 Ghidra)进行集成
- 扩展至字符串解密之外的领域:
- 混淆分类
- 控制流恢复提示
- 大型二进制文件的自动化分类
## 目标
构建一个系统,通过优先处理关键事项来增强逆向工程师的能力,并减少人工工作量。
本项目并非旨在替代现有的逆向工程工具,而是为了使其工作流程更快速、更具可扩展性。
## 免责声明
本项目使用合成数据,属于实验性质。其旨在用于逆向工程工作流的研究和工具探索。
## 长期方向
长远愿景是构建一个通用的 AI 辅助逆向工程框架,让 LLM 作为跨越多种分析任务的推理引擎,而不仅限于反混淆。
标签:AI辅助逆向工程, DAST, DLL 劫持, Ghidra, JSON结构化输出, LoRA, Qwen2.5-Coder, Wayback Machine, x64架构, 二进制分析, 云安全运维, 人工智能, 代码混淆检测, 伪代码分析, 凭据扫描, 函数分类, 反汇编, 反混淆, 合成数据集, 大语言模型, 微调, 恶意软件分析, 深度学习, 特征提取, 用户模式Hook绕过, 网络安全, 自动化分析, 跨站脚本, 软件逆向, 逆向工具, 隐私保护