Overview
The Binary Analysis package provides comprehensive crash analysis capabilities for binary executables. It extracts exploitability information using debuggers (GDB/LLDB), disassembly, and LLM-powered analysis.Purpose
Analyze crashes and binaries with:- Crash analysis: Extract stack traces, registers, crash instructions
- Debugger integration: GDB (Linux/Windows) and LLDB (macOS)
- Disassembly: Function-level code analysis
- Exploitability assessment: Automated triage
- Symbol table extraction: Address-to-function mapping
Architecture
Quick Start
Basic Crash Analysis
With LLM Analysis
Core Classes
CrashAnalyser
Main crash analysis engine.Path
required
Path to target binary executable
CrashContext
Complete context for a crash.str
Unique crash identifier (SHA256 hash)
str
Signal that caused crash (SIGSEGV, SIGABRT, SIGILL, etc.)
str
Full stack trace from debugger
Dict[str, str]
CPU register values at crash (PC, SP, etc.)
str
Disassembly of crashing instruction
str
Exploitability estimate: “exploitable”, “likely”, “unlikely”, “not_exploitable”
str
Crash classification: “heap_overflow”, “stack_overflow”, “null_deref”, “use_after_free”, etc.
GDBDebugger
GDB integration for Linux/Windows binaries.Analysis Workflow
Complete Crash Triage
Debugger Support
Automatic Detection
The analyser automatically selects the appropriate debugger:GDB Commands
LLDB Commands (macOS)
Crash Classification
Automatic Classification
The analyser classifies crashes based on:- Signal type: SIGSEGV, SIGABRT, SIGILL, SIGFPE
- Crash address: NULL, heap, stack, code regions
- Instruction pattern: Write, read, execute, call
- Stack trace patterns: malloc/free, memcpy, strcpy
Crash Types
Exploitability Assessment
Heuristic Analysis
Exploitability Levels
Binary Information
Extract Binary Details
Check Security Features
Symbol Table
Address-to-Function Mapping
Source Location
Stack Hashing
Deduplication
Configuration
Timeouts
Available Tools
The analyser checks for these tools:nm- Symbol table extractionaddr2line- Address to source resolutionobjdump- Disassemblyreadelf- ELF header analysis (Linux)file- File type identificationstrings- String extraction
Output Structure
Integration
With Fuzzing
With LLM Analysis
Related Packages
- Fuzzing - Generate crashes to analyze
- LLM Analysis - AI-powered crash analysis
- Exploitability Validation - Validate exploitability
Performance
Analysis Speed
- Per crash: 5-15 seconds
- With symbols: +2-5 seconds
- With ASAN: +3-8 seconds (richer info)
Deduplication
- Stack hashing: < 1 second per crash
- Typical deduplication: 100 crashes → 10-20 unique
Best Practices
- Compile with symbols (
-g) for better analysis - Enable ASAN for heap bug detection
- Prioritize by exploitability (focus on “exploitable” first)
- Deduplicate early to avoid redundant analysis
- Use LLM analysis for complex crashes