Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/poppopjmp/vmdragonslayer
静态分析动态分析 (沙盒)漏洞分析逆向工程调试器模糊测试恶意软件分析二进制分析机器学习论文与研究学习与教育
GitHub
43168511个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
poppopjmp/vmdragonslayer

VMDragonSlayer

多引擎框架,用于解包和分析 VM 保护的二进制文件,采用动态污点跟踪、符号执行、模式分类和机器学习驱动的优先级排序,自动化逆向工程商业及自定义保护器。

查看仓库
分享

VMDragonSlayer

项目将于10月中旬公开,重构进行中

先进的虚拟机检测与分析框架

VMDragonSlayer 是一个用于分析受虚拟机(VM)保护器(如 VMProtect 2.x/3.x、Themida 以及自定义恶意软件 VM)保护的二进制文件的综合框架。该框架结合了动态污点跟踪(DTT)、符号执行(SE)、模式分类和机器学习等多种分析引擎,以自动化逆向工程过程。

目标:将复杂的受保护二进制分析从数周/数月的人工工作转变为结构化、自动化的分析,并提供可解释的结果。

主要特性

  • 多引擎分析:结合静态、动态和混合分析技术
  • VM 检测:自动检测商业和自定义 VM 保护器
  • 插件生态:与 Ghidra、IDA Pro 和 Binary Ninja 集成
  • 机器学习:用于模式分类的概念验证 ML 模型
  • 可扩展架构:模块化设计,支持自定义分析工作流
  • 研究框架:专为恶意软件研究和逆向工程教育而构建

核心能力

领域引擎/模块亮点
VM 发现analysis.vm_discovery调度器与处理表识别、嵌套 VM 启发式
模式分析analysis.pattern_analysis规则 + 相似度 + ML(混合自动选择)
污点跟踪analysis.taint_tracking基于 Intel Pin 的字节级污点、处理发现、流置信度
符号执行analysis.symbolic_execution.executorPathPrioritizer ML 加权探索、约束与状态跟踪
混合编排(Python 核心)顺序 / 并行 / 自适应工作流(Ghidra 报告表明已实现)
合成数据data/training/synthetic_sample_generator.py混淆变异、多架构样本生成
模式数据库data/patterns/JSON + 增强 DB + SQLite 支持的运行时模式
Ghidra 插件plugins/ghidra/进行中的 UI 集成(缺少几个模板)
模式/验证data/schemas/基于 JSON schema 验证的分析输出与模式格式

架构概览

VMDragonSlayer 采用模块化架构,多个分析引擎协同工作:

root@kitploit:~
graph TD
    A[VM 发现引擎] --> B[模式/ML 分类器]
    B --> C[符号执行引擎]
    B --> D[动态污点跟踪器]
    D --> C
    
    subgraph DataSources ["数据源"]
        E[模式数据库]
        F[ML 模型 - PoC]
    end
    
    subgraph Coordination
        G[编排器 - 工作流管理与协调]
    end
    
    E --> B
    F --> B
    A --> G
    B --> G
    C --> G
    D --> G
    E --> G
    F --> G
    G --> H[REST API 服务器]
    G --> I[插件 - RE 工具]

核心分析引擎

1. VM 发现引擎 (dragonslayer.analysis.vm_discovery)

  • 目的:检测和分类基于 VM 的保护方案
  • 技术:调度器循环检测、处理表分析、控制流启发式
  • 目标:VMProtect、Themida、自定义恶意软件 VM、嵌套保护

2. 动态污点跟踪 (dragonslayer.analysis.taint_tracking)

  • 目的:跟踪通过 VM 执行的数据流,识别关键路径
  • 实现:基于 Intel Pin 的插桩,字节级精度
  • 特性:影子内存、反分析规避、自动化处理发现

3. 模式分析 (dragonslayer.analysis.pattern_analysis)

  • 目的:分类和归类 VM 模式与行为
  • 方法:规则匹配、相似度分析、ML 分类
  • 数据库:可扩展的模式数据库,支持 JSON schema

4. 符号执行 (dragonslayer.analysis.symbolic_execution)

  • 目的:符号化探索 VM 执行路径
  • 特性:约束求解、路径优先级排序、状态合并
  • 集成:利用污点分析结果引导探索

5. 机器学习流水线 (dragonslayer.ml)

  • 目的:自动化分类与分析辅助
  • 模型:用于研究和教育的基本概念验证模型
  • 组件:特征提取、模型训练、集成预测

仓库结构

root@kitploit:~
VMDragonSlayer/
├── dragonslayer/                    # 主 Python 包
│   ├── analysis/                   # 分析引擎
│   │   ├── vm_discovery/          # VM 检测与分类
│   │   ├── pattern_analysis/      # 模式匹配与 ML 分类
│   │   ├── symbolic_execution/    # 符号执行引擎
│   │   ├── taint_tracking/        # 动态污点分析
│   │   └── anti_evasion/          # 反分析对抗措施
│   ├── api/                       # REST API 服务器与客户端
│   ├── core/                      # 核心框架组件
│   ├── ml/                        # 机器学习流水线
│   ├── analytics/                 # 分析报告与度量
│   ├── gpu/                       # GPU 加速支持
│   ├── utils/                     # 工具函数
├── data/                          # 配置文件与数据文件
│   ├── patterns/                  # 模式数据库
│   ├── models/                    # ML 模型与元数据
│   │   ├── pretrained/           # 预训练模型 (PoC)
│   │   └── metadata/             # 模型元数据与模式
│   ├── samples/                   # 样本文件与注册表
│   ├── schemas/                   # 用于验证的 JSON 模式
│   └── training/                  # 训练配置
├── plugins/                       # 逆向工程工具插件
│   ├── ghidra/                   # Ghidra 插件(Java/Gradle)
│   ├── idapro/                   # IDA Pro 插件(Python)
│   └── binaryninja/              # Binary Ninja 插件(Python)
├── tests/                         # 测试套件
├── documentation/                 # 文档
└── LICENSE                        # GPL v3 许可证

插件生态

VMDragonSlayer 与主要逆向工程工具集成:

Ghidra 插件

  • 语言:Java,使用 Gradle 构建系统
  • 特性:VM 分析 UI、模式可视化、自动化分析工作流
  • 状态:框架已实现,UI 组件开发中

IDA Pro 插件

  • 语言:Python
  • 特性:无缝集成 IDA 的分析引擎
  • 状态:核心功能可用

Binary Ninja 插件

  • 语言:Python
  • 特性:原生 Binary Ninja API 集成
  • 状态:基本集成已实现

机器学习组件

注意:包含的 ML 模型是基本的概念验证实现,用于研究和教育目的。


安装

前提条件

  • Python 3.8 或更高版本
  • 一个或多个逆向工程工具:
    • Ghidra 10.0+(用于 Ghidra 插件)
    • IDA Pro 7.0+(用于 IDA 插件)
    • Binary Ninja(用于 Binary Ninja 插件)

硬件要求

最低要求

  • CPU:现代 x64 处理器
  • RAM:最低 8GB,推荐 16GB
  • 存储:5GB 可用空间
  • 操作系统:Windows 10/11、Linux(Ubuntu 20.04+)、macOS 11+

GPU 要求(可选但推荐)

  • NVIDIA GPU:GTX 1060 或更高版本以获得最佳性能
  • CUDA:版本 11.8 或 12.1+(随 PyTorch 自动安装)
  • VRAM:ML 模型最低 4GB

重要限制

  • 虚拟机:GPU 加速功能需要直接硬件访问,在虚拟机中可能无法工作
  • WSL:某些 GPU 功能在 WSL 环境中可能功能受限
  • 远程服务器:确保正确安装 CUDA 驱动以实现无头 GPU 访问

当前状态(已修复问题)

已验证的工作示例

root@kitploit:~
# 现在可以完美运行:
from dragonslayer.core.orchestrator import Orchestrator, AnalysisType

orchestrator = Orchestrator()
result = orchestrator.analyze_binary("your_binary.exe", analysis_type=AnalysisType.VM_DISCOVERY)

# 结果结构正确:
vmd = result.get("vm_discovery", {})
print(f"VM detected: {vmd.get('vm_detected', False)}")
print(f"Handlers found: {len(vmd.get('handlers_found', []))}")

快速开始

root@kitploit:~
# 1. 安装所有依赖
pip install -r requirements.txt
pip install -e .

核心框架

root@kitploit:~
# 克隆仓库
git clone https://github.com/poppopjmp/VMDragonSlayer.git
cd VMDragonSlayer

# 更新后的安装
# 安装所有必要依赖,包括 z3-solver
pip install -r requirements.txt

# 以开发模式安装框架
pip install -e .

不同硬件的安装

root@kitploit:~
# 仅 CPU 安装(基本功能)
pip install -r requirements.txt
pip install -e .

# NVIDIA GPU with CUDA 12.x (RTX 30xx/40xx 系列) 
pip install -r requirements.txt
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install -e .

# NVIDIA GPU with CUDA 11.8 (较旧 GPU)
pip install -r requirements.txt  
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
pip install -e .

创建虚拟环境

python -m venv venv source venv/bin/activate # Linux/macOS

或

venv\Scripts\activate # Windows

安装依赖

pip install -r requirements.txt

安装框架

cd dragonslayer pip install -e .

插件安装

选择您偏好的反汇编器:

Ghidra 插件

root@kitploit:~
cd plugins/ghidra
./build.bat  # Windows
# 或
./build.sh   # Linux/macOS

# 安装到 Ghidra
cp dist/VMDragonSlayer.zip $GHIDRA_INSTALL_DIR/Extensions/

快速开始

1. 基本框架使用

root@kitploit:~
from dragonslayer.core.orchestrator import Orchestrator, AnalysisType

# 初始化编排器(自动加载默认配置)
orchestrator = Orchestrator()

# 分析二进制文件
result = orchestrator.analyze_binary("path/to/protected_binary.exe", analysis_type=AnalysisType.VM_DISCOVERY)

# 提取 VM 发现结果
vmd = result.get("vm_discovery", {})
print(f"VM Protection Detected: {vmd.get('vm_detected', False)}")
print(f"Handler Count: {len(vmd.get('handlers_found', []))}")
print(f"Analysis Success: {result.get('success', False)}")

插件状态

逆向工程工具集成


架构

VMDragonSlayer 采用模块化架构,包含多个分析引擎:

分析引擎

VM 发现引擎

  • 调度器检测:通过控制流分析识别 VM 调度器循环
  • 处理映射:映射 VM 处理及其关系
  • 架构识别:检测 VMProtect、Themida 和自定义 VM 架构

污点跟踪引擎

  • 动态分析:跟踪通过 VM 处理的数据流
  • 精度控制:字节级或指令级粒度
  • 反规避:绕过常见分析检测技术

模式分析引擎

  • 特征匹配:基于规则的模式识别
  • ML 分类:基于机器学习的处理分类
  • 相似度分析:用于变体检测的模糊匹配

符号执行引擎

  • 路径探索:系统地探索执行路径
  • 约束求解:基于 Z3 的约束解析
  • VM 感知分析:专门处理虚拟化代码

机器学习模型

该框架包含几个概念验证模型:

可用模型

  • 字节码分类器:VM 字节码序列中的模式识别
  • VM 检测器:VM 保护存在的二分类
  • 处理分类器:VM 处理类型的分类
  • VMProtect 检测器:专门用于 VMProtect 模式的检测器
  • 集成模型:组合多个分类器以提高准确率

模型特征

  • 格式:Scikit-learn 兼容(joblib 序列化)
  • 大小:小巧的模型,适合快速原型开发
  • 用途:教育示例和研究基准
  • 训练数据:合成数据和有限的真实世界样本

配置

环境变量

root@kitploit:~
# 核心配置
export VMDS_CONFIG_PATH="/path/to/config"
export VMDS_MODEL_PATH="/path/to/models"  
export VMDS_LOG_LEVEL="INFO"

# 数据库配置
export VMDS_DB_URL="sqlite:///vmds.db"

# API 配置
export VMDS_API_HOST="localhost"
export VMDS_API_PORT="8000"

配置文件

  • data/database_config.json:数据库设置
  • data/taint_config.properties:污点分析参数
  • data/models/model_registry_config.toml:ML 模型配置

示例

高级配置

root@kitploit:~
from dragonslayer.core.config import Config
from dragonslayer.analysis.vm_discovery import VMDiscoveryEngine
from dragonslayer.analysis.taint_tracking import TaintTracker

# 自定义配置
config = Config({
    'vm_discovery': {
        'min_handler_count': 10,
        'dispatcher_threshold': 0.8
    },
    'taint_tracking': {
        'precision': 'byte_level',
        'max_depth': 1000
    }
})

# 初始化特定引擎
vm_engine = VMDiscoveryEngine(config)
taint_tracker = TaintTracker(config)

# 运行针对性分析
vm_result = vm_engine.analyze("binary.exe")
if vm_result.vm_detected:
    taint_result = taint_tracker.analyze(vm_result.handlers)

批量分析

root@kitploit:~
from dragonslayer.workflows.manager import WorkflowManager

# 处理多个二进制文件
manager = WorkflowManager()
results = manager.process_batch([
    "sample1.exe",
    "sample2.exe", 
    "sample3.exe"
])

# 生成摘要报告
manager.generate_report(results, "analysis_report.json")

贡献

我们欢迎贡献!请参阅:

  • CONTRIBUTING.md - 开发指南
  • CODE_OF_CONDUCT.md - 社区标准
  • SECURITY.md - 安全策略

许可证

本项目采用 GNU General Public License v3.0 许可证。详情请参见 LICENSE。


引用

如果您在研究中使用 VMDragonSlayer,请引用:

root@kitploit:~
@software{vmdragonslayer_2025,
  title   = {VMDragonSlayer: Automated VM-based Binary Protection Analysis},
  author  = {Panico, Agostino},
  year    = {2025},
  url     = {https://github.com/poppopjmp/VMDragonSlayer}
}

联系方式

  • 作者:van1sh
  • 邮箱:[email protected]
  • GitHub:@poppopjmp

致谢

特别感谢逆向工程社区以及使该框架成为可能的底层分析工具和库的开发者。

下载工具
工具状态预计完成时间备注
Direct API稳定现已可用推荐方法
Ghidra 插件进行中2025年10月基本功能可用
IDA Pro 插件开发中2025年11月进行中 - 尚未可用
Binary Ninja 插件开发中2025年11月进行中 - 尚未可用