Skip to main content

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:
  1. Signal type: SIGSEGV, SIGABRT, SIGILL, SIGFPE
  2. Crash address: NULL, heap, stack, code regions
  3. Instruction pattern: Write, read, execute, call
  4. 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 extraction
  • addr2line - Address to source resolution
  • objdump - Disassembly
  • readelf - ELF header analysis (Linux)
  • file - File type identification
  • strings - String extraction

Output Structure

Integration

With Fuzzing

With LLM Analysis

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

  1. Compile with symbols (-g) for better analysis
  2. Enable ASAN for heap bug detection
  3. Prioritize by exploitability (focus on “exploitable” first)
  4. Deduplicate early to avoid redundant analysis
  5. Use LLM analysis for complex crashes