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绕过, 网络安全, 自动化分析, 跨站脚本, 软件逆向, 逆向工具, 隐私保护