-
Notifications
You must be signed in to change notification settings - Fork 762
Home

Qiling Framework is a cutting-edge binary emulation and dynamic analysis platform designed for security researchers, malware analysts, and reverse engineers. Built on top of the powerful Unicorn Engine, Qiling provides a comprehensive solution for cross-platform binary analysis with unparalleled flexibility and control.
In the rapidly evolving landscape of cybersecurity, traditional static analysis tools often fall short when dealing with sophisticated malware, obfuscated binaries, or cross-platform code. Qiling bridges this gap by providing:
- True Cross-Platform Emulation: Run Windows malware on Linux, analyze ARM firmware on x86 systems
- Comprehensive OS Support: From desktop operating systems to embedded microcontrollers
- Research-Grade Instrumentation: Fine-grained control over execution flow and system interactions
- Enterprise-Ready Architecture: Scalable, extensible, and production-tested
┌─────────────────────────────────────────────────────────────┐
│ Qiling Framework │
├─────────────────────────────────────────────────────────────┤
│ Analysis Tools & Extensions │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Fuzzing │ │ Debugging │ │ Tracing │ ... │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Core Emulation Engine │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Instruction │ │ Memory │ │ OS Layer │ │
│ │ Hooks │ │ Management │ │ Emulation │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
├─────────────────────────────────────────────────────────────┤
│ Multi-Architecture Support │
│ x86/x64 │ ARM/ARM64 │ MIPS │ RISC-V │ PowerPC │ 8086 │
├─────────────────────────────────────────────────────────────┤
│ Multi-Platform Support │
│ Windows │ Linux │ macOS │ UEFI │ DOS │ QNX │ MCU │
├─────────────────────────────────────────────────────────────┤
│ Unicorn Engine │
│ (CPU Emulation Foundation) │
└─────────────────────────────────────────────────────────────┘
- Desktop OS: Windows (XP-11), Linux (various distributions), macOS, FreeBSD
- Embedded Systems: QNX, various RTOS implementations
- Firmware: UEFI, DOS, MBR boot sectors
- Microcontrollers: ARM Cortex-M, various MCU architectures
- x86 Family: 8086, x86 (32-bit), x86-64 (64-bit)
- ARM Family: ARMv7, ARMv8, ARM64/AArch64, Thumb mode
- MIPS: Big/Little endian support
- RISC-V: 32-bit and 64-bit variants
- PowerPC: Various PowerPC implementations
- Executable Formats: PE/PE+, ELF, Mach-O, COM
- Boot Sectors: MBR, various bootloader formats
- Kernel Objects: Linux .ko, Windows .sys, macOS .kext
- Raw Shellcode: Architecture-agnostic shellcode analysis
- Instruction-level hooks: Monitor every CPU instruction
- Memory access hooks: Track reads, writes, and executions
- API-level hooks: Intercept system calls and library functions
- Custom breakpoints: Conditional and multi-level breakpoints
- Execution tracing: Complete execution flow recording
- Code coverage: Basic block and instruction coverage
- Taint analysis: Data flow tracking and analysis
- Behavior monitoring: System interaction observation
- Built-in debugger (QDB): GDB-like debugging experience
- GDB server: Integration with standard debugging tools
- Reverse debugging: Step backwards through execution
- Memory snapshots: Save and restore execution states
- Safe execution: Isolated sandbox environment
- Anti-evasion: Bypass VM detection techniques
- Unpacking: Dynamic malware unpacking capabilities
- Behavior analysis: Comprehensive malware behavior profiling
- Fuzzing integration: AFL++, custom fuzzing engines
- Crash analysis: Detailed crash dump generation
- Exploit development: Controlled exploitation environment
- Binary auditing: Systematic security assessment
- Firmware emulation: Complete device firmware analysis
- Protocol analysis: Network protocol reverse engineering
- Hardware simulation: Peripheral and device emulation
- Bootloader analysis: Boot process examination
- Enhanced MCU Support: Expanded microcontroller emulation capabilities
- Performance Optimizations: Up to 40% faster execution in common scenarios
- Extended Architecture Support: Additional RISC-V and PowerPC variants
- Improved Windows Compatibility: Better DLL handling and API coverage
- Memory Management: Optimized memory allocation and deallocation
- Hook System: Reduced overhead for high-frequency hooks
- Error Handling: More detailed error reporting and recovery
- Documentation: Comprehensive API documentation and examples
- Resolved memory leaks in long-running emulation sessions
- Fixed architecture detection issues for certain binary formats
- Improved stability for multithreaded emulation scenarios
- Enhanced compatibility with newer Python versions
Ready to jump right in? Follow our Quick Start Guide to run your first emulation in minutes.
New to Qiling? Follow our comprehensive Learning Path designed to take you from beginner to expert systematically.
Need specific API information? Jump to our Complete API Reference for detailed documentation.
from qiling import Qiling
from qiling.const import QL_VERBOSE
# Professional malware analysis setup
def analyze_malware(sample_path, rootfs_path):
ql = Qiling([sample_path], rootfs_path,
verbose=QL_VERBOSE.DEBUG,
libcache=True, # Performance optimization
multithread=True) # Multithreading support
# Set up comprehensive monitoring
setup_behavioral_analysis(ql)
setup_network_monitoring(ql)
setup_file_system_hooks(ql)
# Execute with timeout and error handling
try:
ql.run(timeout=30000000) # 30 seconds
except Exception as e:
generate_crash_report(ql, e)
return generate_analysis_report(ql)from qiling import Qiling
from qiling.const import QL_ARCH, QL_OS
from qiling.extensions.coverage import QlCoverage
def comprehensive_shellcode_analysis(shellcode_bytes):
ql = Qiling(code=shellcode_bytes,
archtype=QL_ARCH.X8664,
ostype=QL_OS.LINUX,
rootfs='analysis_environment/')
# Set up advanced analysis
coverage = QlCoverage(ql)
tracer = ExecutionTracer(ql)
taint_analyzer = TaintAnalyzer(ql)
# Mark shellcode as tainted for data flow analysis
taint_analyzer.mark_memory_tainted(ql.code_base, len(shellcode_bytes))
ql.run()
return {
'coverage': coverage.get_coverage(),
'execution_trace': tracer.get_trace(),
'taint_analysis': taint_analyzer.get_results()
}from qiling import Qiling
from qiling.hw import QlHardwareManager
def emulate_iot_firmware(firmware_path, device_config):
ql = Qiling([firmware_path], 'firmware_rootfs/',
archtype=device_config['arch'],
ostype=device_config['os'])
# Set up hardware emulation
hw_manager = QlHardwareManager(ql)
hw_manager.setup_gpio(device_config['gpio_config'])
hw_manager.setup_uart(device_config['uart_config'])
hw_manager.setup_network(device_config['network_config'])
# Monitor firmware behavior
setup_protocol_analysis(ql)
setup_vulnerability_detection(ql)
ql.run()- Automated Malware Analysis: Large-scale malware processing pipelines
- Threat Hunting: Advanced persistent threat detection
- Security Assessment: Binary security auditing and validation
- Incident Response: Rapid malware analysis and attribution
- Security Research: Novel attack and defense mechanism development
- Binary Analysis: Advanced program analysis techniques
- Reverse Engineering: Automated reverse engineering workflows
- Vulnerability Discovery: Systematic vulnerability research
- Cyber Threat Intelligence: Advanced malware analysis capabilities
- Critical Infrastructure: Industrial control system security
- Digital Forensics: Advanced binary forensics and analysis
- Cyber Warfare: Offensive and defensive cyber capabilities
Qiling has been featured at major security conferences:
- Black Hat (USA, Europe, Asia, MEA): 2019-2022
- DEF CON: Demolabs and presentations
- Hack in the Box: Multiple presentations and workshops
- Nullcon: Security conference presentations
- Active Development: 100+ contributors worldwide
- Continuous Integration: Automated testing and quality assurance
- Documentation: Comprehensive guides and examples
- Support: Active community support and mentorship
- IDA Pro: Native plugin for interactive analysis
- Ghidra: Script integration and automation
- Radare2: r2pipe integration for advanced analysis
- AFL++: Fuzzing framework integration
- Docker: Containerized analysis environments
# Quick installation
pip install qiling
# Development installation
git clone https://github.com/qilingframework/qiling.git
cd qiling
pip install -e .
# Docker installation
docker pull qilingframework/qiling:latest- Quick Start Guide - Get running in 5 minutes
- Learning Path - Structured beginner to expert progression
- Basic Usage - Essential patterns and techniques
- Architecture Overview - Understanding Qiling's design
- Complete API Reference - Comprehensive API documentation
- Windows Emulation - Windows analysis techniques
- Linux Emulation - Linux system emulation
- MCU/Firmware Emulation - Embedded system analysis
- Malware Analysis - Complete malware analysis workflow
- Reverse Engineering - Professional RE techniques
- Fuzzing - Vulnerability discovery and testing
- Step-by-Step Tutorials - Hands-on learning examples
- QlTool - Command-line interface and automation
- Debugging - Interactive debugging techniques
- Performance Tuning - Optimization strategies
For enterprises requiring dedicated support, training, or custom development:
- Professional Training: On-site and remote training programs
- Custom Development: Tailored solutions for specific requirements
- Consulting Services: Expert guidance for complex projects
- Priority Support: Dedicated support channels and SLA guarantees
- Email: [email protected]
- Enterprise Sales: [email protected]
- Technical Support: [email protected]
Qiling Framework is released under the GNU General Public License v2.0, ensuring open-source availability while maintaining commercial compatibility.
- Project Founder: KaiJern Lau (xwings)
- Core Team: See CREDITS.md
- Governance Model: Community-driven development with core maintainer oversight
Qiling Framework is built upon the foundation of Unicorn Engine and benefits from contributions by security researchers, academics, and industry professionals worldwide.
| Resource | Description | Link |
|---|---|---|
| 📖 Documentation | Complete technical documentation | docs.qiling.io |
| 💬 Community Chat | Real-time support and discussions | Telegram |
| 🐛 Issue Tracker | Bug reports and feature requests | GitHub Issues |
| 📦 Releases | Latest releases and changelogs | GitHub Releases |
| 🏠 Official Website | Project homepage and news | qiling.io |
| 📊 Package Stats | PyPI download statistics | PyPI |
Last updated: 2025-01-06 | Version: 1.4.8 | Qiling Framework Team
- Home
- Getting Started
- Core Concepts
- Usage
- Features
- Tutorials
- Development
- Resources