
बहु-इंजन ढांचा, जो VM-संरक्षित बाइनरीज़ को अनपैक और विश्लेषण करने के लिए गतिशील दाग ट्रैकिंग, प्रतीकात्मक निष्पादन, पैटर्न वर्गीकरण, और एमएल-संचालित प्राथमिकता का उपयोग करके वाणिज्यिक और कस्टम प्रोटेक्टर्स के रिवर्स इंजीनियरिंग को स्वचालित करता है।
परियोजना अक्टूबर के मध्य तक सार्वजनिक होगी, पुनर्गठन प्रगति पर है
उन्नत वर्चुअल मशीन पहचान और विश्लेषण ढांचा
VMDragonSlayer एक व्यापक ढांचा है जो वर्चुअल मशीन (VM) आधारित सुरक्षा उपकरणों जैसे VMProtect 2.x/3.x, Themida, और कस्टम मैलवेयर VM द्वारा संरक्षित बाइनरी के विश्लेषण के लिए है। यह ढांचा रिवर्स इंजीनियरिंग प्रक्रिया को स्वचालित करने के लिए कई विश्लेषण इंजनों को जोड़ता है, जिनमें डायनामिक टेंट ट्रैकिंग (DTT), सिम्बोलिक एक्ज़ीक्यूशन (SE), पैटर्न क्लासिफिकेशन और मशीन लर्निंग शामिल हैं।
लक्ष्य: जटिल संरक्षित बाइनरी विश्लेषण को हफ्तों/महीनों के मैन्युअल कार्य से संरचित, स्वचालित विश्लेषण में बदलना, जिसमें समझाने योग्य परिणाम हों।
| क्षेत्र | इंजन / मॉड्यूल | मुख्य बिंदु |
|---|---|---|
| VM खोज | analysis.vm_discovery | डिस्पैचर और हैंडलर तालिका पहचान, नेस्टेड VM ह्युरिस्टिक्स |
| पैटर्न विश्लेषण | analysis.pattern_analysis | नियम-आधारित + समानता + ML (हाइब्रिड ऑटो-चयन) |
| टेंट ट्रैकिंग | analysis.taint_tracking | Intel Pin–संचालित बाइट-स्तरीय टेंट, हैंडलर खोज, प्रवाह विश्वास |
| सिम्बोलिक एक्ज़ीक्यूशन | analysis.symbolic_execution.executor | PathPrioritizer ML-भारित अन्वेषण, बाधा और स्थिति ट्रैकिंग |
| हाइब्रिड ऑर्केस्ट्रेशन | (Python कोर) | अनुक्रमिक / समानांतर / अनुकूली कार्यप्रवाह (Ghidra रिपोर्ट कार्यान्वित होने का संकेत देती है) |
| कृत्रिम डेटा | data/training/synthetic_sample_generator.py | ऑब्फस्केशन म्यूटेशन, मल्टी-आर्किटेक्चर नमूना निर्माण |
| पैटर्न DB | data/patterns/ | JSON + संवर्धित DB + SQLite-समर्थित रनटाइम पैटर्न |
| Ghidra प्लगइन | plugins/ghidra/ | प्रगति पर UI एकीकरण (कई टेम्पलेट गायब) |
| योजनाएं / मान्यकरण | data/schemas/ | JSON स्कीमा-मान्य विश्लेषण आउटपुट और पैटर्न प्रारूप |
VMDragonSlayer एक मॉड्यूलर आर्किटेक्चर का उपयोग करता है जिसमें कई विश्लेषण इंजन एक साथ काम करते हैं:
graph TD
A[VM Discovery Engine] --> B[Pattern/ML Classifier]
B --> C[Symbolic Execution Engine]
B --> D[Dynamic Taint Tracker]
D --> C
subgraph DataSources ["Data Sources"]
E[Pattern Database]
F[ML Models - PoC]
end
subgraph Coordination
G[Orchestrator - Workflow Management & Coordination]
end
E --> B
F --> B
A --> G
B --> G
C --> G
D --> G
E --> G
F --> G
G --> H[REST API Server]
G --> I[Plugins - RE Tools]
dragonslayer.analysis.vm_discovery)dragonslayer.analysis.taint_tracking)dragonslayer.analysis.pattern_analysis)dragonslayer.analysis.symbolic_execution)dragonslayer.ml)VMDragonSlayer/
├── dragonslayer/ # Main Python package
│ ├── analysis/ # Analysis engines
│ │ ├── vm_discovery/ # VM detection and classification
│ │ ├── pattern_analysis/ # Pattern matching and ML classification
│ │ ├── symbolic_execution/ # Symbolic execution engine
│ │ ├── taint_tracking/ # Dynamic taint analysis
│ │ └── anti_evasion/ # Anti-analysis countermeasures
│ ├── api/ # REST API server and client
│ ├── core/ # Core framework components
│ ├── ml/ # Machine learning pipeline
│ ├── analytics/ # Analysis reporting and metrics
│ ├── gpu/ # GPU acceleration support
│ ├── utils/ # Utility functions
├── data/ # Configuration and data files
│ ├── patterns/ # Pattern database
│ ├── models/ # ML models and metadata
│ │ ├── pretrained/ # Pre-trained models (PoC)
│ │ └── metadata/ # Model metadata and schemas
│ ├── samples/ # Sample files and registries
│ ├── schemas/ # JSON schemas for validation
│ └── training/ # Training configurations
├── plugins/ # Reverse engineering tool plugins
│ ├── ghidra/ # Ghidra plugin (Java/Gradle)
│ ├── idapro/ # IDA Pro plugin (Python)
│ └── binaryninja/ # Binary Ninja plugin (Python)
├── tests/ # Tests suite
├── documentation/ # Documentation
└── LICENSE # GPL v3 License
VMDragonSlayer प्रमुख रिवर्स इंजीनियरिंग उपकरणों के साथ एकीकृत होता है:
नोट: शामिल ML मॉडल बुनियादी अवधारणा-प्रमाण कार्यान्वयन हैं जो अनुसंधान और शैक्षिक उद्देश्यों के लिए डिज़ाइन किए गए हैं।
# This now works perfectly:
from dragonslayer.core.orchestrator import Orchestrator, AnalysisType
orchestrator = Orchestrator()
result = orchestrator.analyze_binary("your_binary.exe", analysis_type=AnalysisType.VM_DISCOVERY)
# Results are properly structured:
vmd = result.get("vm_discovery", {})
print(f"VM detected: {vmd.get('vm_detected', False)}")
print(f"Handlers found: {len(vmd.get('handlers_found', []))}")
# 1. Install with all dependencies
pip install -r requirements.txt
pip install -e .
# Clone repository
git clone https://github.com/poppopjmp/VMDragonSlayer.git
cd VMDragonSlayer
# UPDATED INSTALLATION
# Install all required dependencies including z3-solver
pip install -r requirements.txt
# Install framework in development mode
pip install -e .
# CPU-only installation (basic functionality)
pip install -r requirements.txt
pip install -e .
# NVIDIA GPU with CUDA 12.x (RTX 30xx/40xx series)
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 (older GPUs)
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 .
अपना पसंदीदा डिसअसेंबलर चुनें:
cd plugins/ghidra
./build.bat # Windows
# or
./build.sh # Linux/macOS
# Install to Ghidra
cp dist/VMDragonSlayer.zip $GHIDRA_INSTALL_DIR/Extensions/
from dragonslayer.core.orchestrator import Orchestrator, AnalysisType
# Initialize orchestrator (loads default configuration automatically)
orchestrator = Orchestrator()
# Analyze a binary
result = orchestrator.analyze_binary("path/to/protected_binary.exe", analysis_type=AnalysisType.VM_DISCOVERY)
# Extract VM discovery results
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 एक मॉड्यूलर आर्किटेक्चर का उपयोग करता है जिसमें कई विश्लेषण इंजन हैं:
ढांचे में कई अवधारणा-प्रमाण मॉडल शामिल हैं:
# Core configuration
export VMDS_CONFIG_PATH="/path/to/config"
export VMDS_MODEL_PATH="/path/to/models"
export VMDS_LOG_LEVEL="INFO"
# Database configuration
export VMDS_DB_URL="sqlite:///vmds.db"
# API configuration
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 मॉडल कॉन्फ़िगरेशनfrom dragonslayer.core.config import Config
from dragonslayer.analysis.vm_discovery import VMDiscoveryEngine
from dragonslayer.analysis.taint_tracking import TaintTracker
# Custom configuration
config = Config({
'vm_discovery': {
'min_handler_count': 10,
'dispatcher_threshold': 0.8
},
'taint_tracking': {
'precision': 'byte_level',
'max_depth': 1000
}
})
# Initialize specific engines
vm_engine = VMDiscoveryEngine(config)
taint_tracker = TaintTracker(config)
# Run targeted analysis
vm_result = vm_engine.analyze("binary.exe")
if vm_result.vm_detected:
taint_result = taint_tracker.analyze(vm_result.handlers)
from dragonslayer.workflows.manager import WorkflowManager
# Process multiple binaries
manager = WorkflowManager()
results = manager.process_batch([
"sample1.exe",
"sample2.exe",
"sample3.exe"
])
# Generate summary report
manager.generate_report(results, "analysis_report.json")
हम योगदान का स्वागत करते हैं! कृपया देखें:
यह परियोजना GNU जनरल पब्लिक लाइसेंस v3.0 के अंतर्गत लाइसेंस प्राप्त है। विवरण के लिए LICENSE देखें।
यदि आप अपने अनुसंधान में VMDragonSlayer का उपयोग करते हैं, तो कृपया उद्धृत करें:
@software{vmdragonslayer_2025,
title = {VMDragonSlayer: Automated VM-based Binary Protection Analysis},
author = {Panico, Agostino},
year = {2025},
url = {https://github.com/poppopjmp/VMDragonSlayer}
}
रिवर्स इंजीनियरिंग समुदाय और उन अंतर्निहित विश्लेषण उपकरणों और पुस्तकालयों के डेवलपर्स को विशेष धन्यवाद जो इस ढांचे को संभव बनाते हैं।
| उपकरण | स्थिति | अनुमानित समय | नोट्स |
|---|
| Direct API | स्थिर | अब उपलब्ध | अनुशंसित दृष्टिकोण |
| Ghidra Plugin | प्रगति पर | अक्टूबर 2025 | बुनियादी कार्यक्षमता उपलब्ध |
| IDA Pro Plugin | विकासाधीन | नवंबर 2025 | कार्य प्रगति पर - कार्यात्मक नहीं |
| Binary Ninja Plugin | विकासाधीन | नवंबर 2025 | कार्य प्रगति पर - कार्यात्मक नहीं |