Reverse Engineering & Binary Analysis
Deep binary analysis with 13 specialized adapters: format detection, symbol extraction, control flow graph generation, vulnerability pattern matching, crypto identification, protocol reverse engineering, anti-analysis detection, firmware deep analysis, symbolic execution, binary diffing, malware scanning, attack surface mapping, and AI-assisted narrative generation.
Prerequisites
- Binary file to analyze: ELF, PE (.exe/.dll), Mach-O, raw firmware, .apk (native libs), .so, .dylib
- PhantomYerra Binary Analysis Engine installed and configured
- Symbolic execution engine available (included with PhantomYerra)
- Claude API key configured (Settings → AI Configuration)
- Python 3.12 runtime active (for adapter pipeline)
- Written authorization covering binary analysis of the target software
- Sufficient disk space for decompiled output (large binaries can generate 500 MB+ of analysis artifacts)
-
1
Select Reverse Engineering from Home Screen
Click the 🔬 Reverse Engineering card on the Home screen. You can either upload a binary file directly (drag and drop supported) or enter the full path to a binary on disk. PhantomYerra accepts the following formats:
Supported Formats: ELF Linux executables, shared objects (.so) PE Windows executables (.exe), DLLs (.dll), drivers (.sys) Mach-O macOS/iOS executables, frameworks (.dylib) Raw Firmware Bare-metal firmware images (.bin, .img, .fw, .hex) APK Android packages (native JNI libraries extracted automatically) Shared Libs .so (Linux), .dylib (macOS) — standalone analysisPhantomYerra auto-detects the binary format using magic bytes and ELF/PE/Mach-O header parsing. No manual format selection is required.
-
2
Configure Analysis Settings
Set the analysis parameters before launching the pipeline:
Analysis Depth: Quick Checksec + strings + imports only (~2 min) Standard Full decompilation + pattern matching (~15 min) Deep All 13 adapters including symbolic execution + diffing (~60 min) Target Architecture (auto-detected, override if needed): x86 | x64 | ARM (32-bit) | ARM64 (AArch64) | MIPS | RISC-V Analysis Modules (all enabled by default in Deep mode): binary_detector Format identification (ELF/PE/Mach-O/firmware) symbol_extractor Imports, exports, dynamic symbols, debug info cfg_generator Control flow graph construction + visualization vuln_pattern_detector Dangerous function calls, buffer ops, format strings crypto_identifier Crypto constants, hardcoded keys, custom algorithms protocol_analyzer Network protocol reverse engineering from binary anti_analysis_detector Anti-debug, anti-VM, packing, obfuscation detection firmware_deep Firmware-specific: bootloader, partition table, RTOS binary_symex Symbolic execution for automated exploit path finding binary_differ Binary diffing for patch analysis + 1-day discovery malware_scanner Behavioral signature matching, YARA rules, IOC extraction attack_surface_mapper Input parsing, network listeners, IPC endpoints ai_narrator Claude AI-generated vulnerability narrative + PoCYou can disable individual modules by unchecking them in the module selection panel. For Quick analysis, only
binary_detector,symbol_extractor,vuln_pattern_detector, andcrypto_identifierrun. -
3
Complete Mission Control Wizard
Step 1: Environment → Lab / Staging / Production binary Step 2: Mode → Automated AI (selected) Step 3: Surfaces → Reverse Engineering (auto-selected) Step 4: Binary Input → File path or uploaded binary confirmed Step 5: Auth Token → Authorization document for binary analysis Step 6: AI Interview → Context questions: "What does this binary do?" "Is source code available for diffing?" "Known architecture or compiler?" Step 7: Review → Confirm modules, depth, architecture, launch -
4
AI Binary Analysis Pipeline (13-Phase)
Claude orchestrates all 13 adapters in sequence. Each phase feeds its output into the next, building a complete binary security profile:
Phase 1: Format Detection (binary_detector) Identify file type via magic bytes, parse ELF/PE/Mach-O headers, detect compiler (GCC/Clang/MSVC/Go/Rust), determine linkage type Phase 2: Header & Section Parsing Parse section table, segment permissions (R/W/X), entry point, detect overlay data, embedded resources, certificate tables Phase 3: Symbol Extraction (symbol_extractor) Extract imports/exports, dynamic symbols, PLT/GOT entries, debug symbols (DWARF/PDB if present), reconstruct function names Phase 4: Control Flow Graph Generation (cfg_generator) Build per-function CFG, identify loops/branches/switch tables, compute cyclomatic complexity, detect unreachable code blocks Phase 5: String Analysis Extract ASCII/Unicode/wide strings, run FLOSS for obfuscated strings, regex match: URLs, IPs, credentials, API keys, file paths, SQL queries, error messages, debug strings Phase 6: Crypto Identification (crypto_identifier) Detect AES S-box constants, DES permutation tables, RSA moduli, SHA/MD5 init vectors, custom XOR/RC4 patterns, hardcoded keys, certificate pinning bypass opportunities Phase 7: Vulnerability Pattern Matching (vuln_pattern_detector) Flag dangerous calls: strcpy, gets, sprintf, system, exec, popen, dlopen, LoadLibrary. Trace data flow from input to sink. Match CWE patterns: CWE-120 (buffer overflow), CWE-134 (format string), CWE-78 (OS command injection), CWE-676 (dangerous func) Phase 8: Protocol Reverse Engineering (protocol_analyzer) Identify network protocol handling: socket/bind/listen/accept, reconstruct packet structures, detect custom binary protocols, map TLS/SSL usage, identify plaintext transmission Phase 9: Anti-Analysis Detection (anti_analysis_detector) Detect anti-debugging (ptrace, IsDebuggerPresent, timing checks), anti-VM (CPUID, registry checks, MAC address checks), packing (UPX, Themida, VMProtect), code obfuscation (control flow flattening, opaque predicates, junk code insertion) Phase 10: Symbolic Execution (binary_symex) Automated path exploration from entry/input points to dangerous sinks. Constraint solving for buffer overflow trigger inputs. Generate concrete exploit inputs for confirmed vulnerabilities. Timeout: configurable (default 300s per function) Phase 11: Binary Diffing (binary_differ) Compare against known-good version or previous patch level. Identify patched functions, new code paths, removed checks. Flag silently patched vulnerabilities (1-day discovery) Phase 12: Attack Surface Mapping (attack_surface_mapper) Enumerate all input vectors: CLI args, env vars, file parsers, network listeners, IPC endpoints (pipes, shared memory, D-Bus), registry reads, config file parsing. Score each by exposure Phase 13: AI Narrative Generation (ai_narrator) Claude reviews all findings, writes professional narrative per vulnerability, generates copy-paste PoC code, assigns CVSS, maps to CVE/CWE, writes executive summary + remediation plan -
5
Monitor Analysis Dashboard
The RE Dashboard updates in real time as each phase completes:
Left Panel: Function list with complexity scores and risk indicators Click any function to view its decompiled C pseudocode Red markers indicate vulnerable functions Orange markers indicate functions calling dangerous APIs Center Panel: Decompiled code viewer with syntax highlighting Vulnerability annotations inline (hover for details) Cross-references: click any call to jump to callee Right Panel: Call graph visualization (interactive, zoomable) Vulnerability markers on graph nodes Attack path highlighting from input to vulnerable sink Bottom Panel: Findings stream — new vulnerabilities appear as confirmed Phase progress bar showing current adapter status Real-time activity log with adapter output -
6
Review Findings and Generate Report
Click any finding to see the full details:
Finding Detail View: CVE Match If the vulnerability matches a known CVE, it is linked CWE Reference CWE-120 Buffer Overflow, CWE-134 Format String, etc. CVSS Score AI-assigned with full vector string Exploit Diff. Easy / Medium / Hard — based on mitigations present Decompiled Code The vulnerable function with the flaw highlighted Call Chain Entry point → intermediate calls → vulnerable function PoC Code Copy-paste exploit script (Python/C) generated by Claude Remediation Binary-specific: "Enable PIE compilation flag", "Replace strcpy with strncpy at line 47", "Upgrade OpenSSL from 1.0.2 to 3.x"Click Reports → Generate → Binary Security Report for the full PDF with executive summary, technical findings, attack surface map, and remediation roadmap.
What Claude Tests (Reverse Engineering)
- Buffer overflows: stack-based, heap-based, off-by-one, integer overflow leading to buffer overflow
- Format string vulnerabilities: printf family with user-controlled format parameter
- Use-after-free and double-free: heap management errors in decompiled code
- Command injection: system/exec/popen with controllable arguments
- Hardcoded credentials: passwords, API keys, tokens, certificates embedded in binary
- Weak cryptography: MD5/SHA1 for security, ECB mode, hardcoded keys, predictable IVs
- Missing security mitigations: no NX, no ASLR, no PIE, no stack canary, no RELRO, no CFI
- Anti-analysis and evasion: packing, obfuscation, anti-debug, anti-VM techniques
- Protocol vulnerabilities: plaintext transmission, weak authentication, replay attacks
- Insecure deserialization in binary protocol handlers
- Race conditions: TOCTOU in file operations, thread-unsafe shared state
- Information disclosure: debug strings, verbose error paths, symbol leaks
Common Scenarios
Goal: Find and exploit a vulnerability in a CTF challenge binary to capture the flag.
Recommended Settings: Deep analysis, all modules enabled, symbolic execution timeout set to 600s.
Approach: Start with checksec to identify missing mitigations. If no PIE and no canary, look for stack buffer overflows first. Use symbolic execution targeting the "win" function (the flag printer). The binary_symex adapter will generate the exact payload. If the binary is stripped (no symbols), the vuln_pattern_detector still identifies dangerous function patterns by opcode matching.
Expected Duration: 5-30 minutes for typical CTF challenges.
Goal: Analyze firmware extracted from an IoT device (router, camera, smart home hub) for vulnerabilities.
Recommended Settings: Deep analysis with firmware_deep adapter enabled, ARM or MIPS architecture (common for IoT), auto-unpack enabled.
Approach: Upload the full firmware image. PhantomYerra extracts the filesystem automatically. The firmware_deep adapter identifies the RTOS, bootloader, and partition layout. Each executable binary in the filesystem is analyzed individually. Focus on: web server binaries (httpd, lighttpd), network daemons (telnetd, sshd, upnpd), and custom management binaries. Check for hardcoded credentials, command injection in CGI scripts, and unsigned firmware update mechanisms.
Expected Duration: 30-120 minutes depending on firmware size and number of binaries.
Goal: Quickly triage a suspected malicious PE file to determine capabilities, IOCs, and threat classification.
Recommended Settings: Deep analysis, malware_scanner + anti_analysis_detector + crypto_identifier enabled, auto-unpack enabled, symbolic execution disabled (malware analysis prioritizes speed over exploit generation).
Approach: The anti_analysis_detector identifies packing (UPX, Themida, VMProtect) and evasion techniques. If packed, PhantomYerra auto-unpacks before analysis. The malware_scanner matches against YARA rules for known malware families. String analysis reveals C2 domains, registry keys, mutex names. The crypto_identifier finds encryption routines used for data exfiltration or ransomware payload. The attack_surface_mapper identifies all persistence mechanisms (registry, scheduled tasks, services, DLL injection targets).
Expected Duration: 10-30 minutes for initial triage.
Goal: Analyze native JNI libraries (.so) from an Android APK or native frameworks from an iOS IPA for vulnerabilities.
Recommended Settings: Standard or Deep analysis, ARM/ARM64 architecture, protocol_analyzer enabled (for API communication), crypto_identifier enabled (for certificate pinning and key storage).
Approach: For Android, upload the APK directly — PhantomYerra extracts native libraries from lib/ automatically. For iOS, extract the .dylib frameworks from the IPA. Focus on: JNI bridge functions (Java_com_*), SSL/TLS pinning implementation, token/key storage, root/jailbreak detection logic (can it be bypassed?), and anti-tampering checks. The protocol_analyzer reconstructs the app's API protocol from the binary, revealing undocumented endpoints.
Expected Duration: 15-45 minutes per native library.
Common Issues
Verify the Binary Analysis Engine installation path in Settings → Tools → Binary Analysis. The headless analysis script must be in the engine's support/ directory. Check that the post-script path is correct and DecompileAll.py exists at config/binary_analysis_scripts/DecompileAll.py. For large binaries (100 MB+), increase the Java heap size in the engine's launch.properties file: MAXMEM=4G. Enable verbose logging in the settings panel to see detailed analysis output.
Symbolic execution suffers from state explosion on complex code paths. Reduce scope: use blank_state starting at the target function address instead of entry_state. Set the step limit in Settings → Tools → Symbolic Execution → Step Limit to 50,000 for initial runs. Hook library calls (especially malloc, printf, strlen) to avoid modeling libc internals. For large binaries, identify the vulnerable function via decompilation first, then target symbolic execution precisely at that function only.
Enable Auto-Unpack in the analysis settings. For UPX-packed binaries, PhantomYerra unpacks automatically. For custom packers: run the binary under the PhantomYerra Runtime Debugger, set a breakpoint at the original entry point (OEP), let the unpacking stub run, then dump the unpacked binary from memory. Alternatively, use the PhantomYerra System Call Tracer to trace the binary in a sandbox — it logs all API calls made during unpacking, revealing the OEP and the decryption routine. The anti_analysis_detector identifies the packing method used, which helps select the correct unpacking approach.
Verify the architecture override in the analysis settings. For ARM binaries, check if the binary uses Thumb mode (16-bit instructions mixed with 32-bit) — select "ARM + Thumb" mode. For MIPS, confirm endianness (big-endian MIPS vs little-endian MIPSEL). If the binary has no ELF header (raw firmware dump), you must manually specify the base load address and architecture in the Binary Analysis Engine import settings. Use readelf -h on ELF binaries or file on raw binaries to confirm architecture before analysis.
This typically occurs when the two binaries were compiled with different compilers, optimization levels, or architectures. Ensure both binaries target the same architecture and were built from the same codebase. If the binaries are stripped (no symbols), the differ relies on CFG shape matching, which requires both binaries to be fully analyzed first. Run full analysis on both binaries individually before attempting the diff. For heavily obfuscated binaries, try reducing the similarity threshold in Settings → Tools → Binary Differ → Match Threshold from 0.7 to 0.5.
264 modules · 30+ surfaces · 14 vuln families · 120+ classes
The sections above describe what this surface tests. For the complete enumeration of every vulnerability class PhantomYerra covers across all surfaces — with scanner module names — see the Coverage Matrix.
View Full Coverage Matrix →