Prerequisites

  • Binary file to analyze (ELF, PE, Mach-O, raw firmware)
  • Ghidra 11+ installed and analyzeHeadless configured
  • radare2 installed
  • Python 3.12 with angr package (optional — for symbolic execution)
  • Written authorization covering binary analysis of the target software
  1. 1

    Select Reverse Engineering from Home Screen

    Click ⚙️ Reverse Engineering. Upload your binary or enter the path on disk.

  2. 2

    Claude Runs Full RE Pipeline

    Phase 1: Security posture — checksec: NX, ASLR, PIE, stack canary, RELRO Phase 2: Architecture — file, readelf: arch, bitness, endianness, OS Phase 3: Strings analysis — extract credentials, URLs, debug strings, crypto Phase 4: Symbol analysis — imported libs, exported functions, syscalls Phase 5: Ghidra decompile — decompile all functions to C pseudocode Phase 6: Pattern matching — find: strcpy, gets, sprintf, system(), eval Phase 7: Symbolic exec — angr: buffer overflows, null derefs, format strings Phase 8: AI analysis — Claude reviews decompiled code (anonymized) Phase 9: Report — findings with CWE mapping and PoC
  3. 3

    Review in the RE Dashboard

    The RE Dashboard shows: binary header (arch, security flags), function list with complexity scores, decompiled C pseudocode viewer, and the Findings panel. Click any function to view its decompiled code with vulnerability annotations.

  4. 4

    Generate Binary Security Report

    Reports → RE Report includes: binary posture (checksec summary), findings by category, AI narrative analysis, decompiled function excerpts showing vulnerabilities, and remediation guidance.

⏱️ Automated analysis: 15–60 minutes. Ghidra decompilation of large binaries can take up to 30 minutes.

Common Issues

Verify the Ghidra installation path in Settings → Tools → Ghidra. The analyzeHeadless script must be in the Ghidra installation's support/ directory. Check that the postScript path is correct and DecompileAll.py exists at config/ghidra_scripts/DecompileAll.py. Run with -log /tmp/ghidra.log for detailed error output.

Symbolic execution has state explosion on large code paths. Focus angr on specific functions rather than the full binary: use proj.factory.blank_state(addr=target_function_addr). Set a timeout: use Python threading or angr's built-in step limits. For large binaries, use Ghidra decompilation + manual review to identify vulnerable functions first, then target angr precisely.

Try dynamic unpacking: run the binary under strace or in a sandbox to let it unpack itself, then dump the unpacked version from memory with gdb + dump binary memory unpacked.bin addr1 addr2. UPX-packed binaries: upx -d binary. Check for anti-analysis tricks: ltrace shows library calls that may include decryption routines.