Ablation is an AI-assisted reverse engineering (AIARE) framework.

Capabilities
Decompilers, Disassemblers & Analyzers
Native CPUs
| ISA | Variants |
|---|---|
| x86 | x86-32 · x86-64 |
| ARM | ARM-32 · ARM-64 · Thumb |
| MIPS | MIPS-32 · nanoMIPS · MIPS-64 |
| PowerPC | PPC-32 · PPC-64 · VLE · PPC476 Book E · XCOFF32 / AIX |
| RISC-V | RV32 · RV64 · HiSilicon ext |
| ARC | ARC EM · ARC HS |
| LoongArch | LoongArch64 · KASAN/KCOV V2 |
| Alpha AXP | Alpha 21064 · 21164 · 21264 · ECOFF · ELF |
| Intel MCS | 8051 / MCS-51 · CC254x |
| Xilinx | MicroBlaze · Versal PDI/CDO · ZynqMP BOOT.BIN |
Automotive ECUs
| ISA | Variants |
|---|---|
| V850 / RH850 | V850-32 · RH850 |
| Renesas SH | SH-2A |
| Motorola | M68K / CPU32 · MC88100 |
| Infineon | TriCore TC1.6x |
| TI DSP | TMS320C28x |
| Infineon C166 | C166 · C167 |
VMs & Runtimes
| ISA | Variants |
|---|---|
| DEX | Dalvik · ART |
| ARK | ArkTS |
| MicroPython | .mpy v6 |
| BEAM | Erlang BEAM bytecode |
| Java | .class · JAR |
| Python | .pyc (3.8–3.12) |
Core Engine
| Capability | Code | Description |
|---|---|---|
| AI Knowledge-Graph Analysis | 1 2 | Combines knowledge graphs with agent-driven retrieval to explore relationships and iteratively refine binary analysis. |
| Analysis Context & Caching | 1 2 | Reuses analysis results and session state across runs to avoid redundant processing. |
| Intermediate Representation | 1 | Lifts machine code from supported architectures into a shared IR for dataflow analysis, taint tracking, symbolic execution, and decompilation. |
| Architecture Definition Language | 1 | Describes ISA encodings and semantics as reusable graphs, allowing new architectures without changing the core analysis engines. |
| Control & Data-Flow Analysis | 1 2 | Builds control-flow graphs, propagates dataflow facts, and recovers high-level control structures from branch instructions. |
| Static Single Assignment | 1 2 | Models register definitions with SSA and unifies architecture-specific instructions for type recovery, struct analysis, and pseudo-C generation. |
| Expression Analysis | 1 | Converts instructions into typed expressions and merges equivalent computations to reduce redundant taint findings. |
| Register & Argument Tracking | 1 2 | Tracks symbolic register values across calls and traces sink arguments to network input, file reads, or prior return values. |
| ARM64 Data-Flow Slicing | 1 2 | Traces ARM64 store addresses backward to identify exact and possible writes to targeted globals and structure fields. |
| Function Prioritization | 1 2 | Profiles function calls and filters findings in functions without runtime call or pointer references. |
| Binary Parsing & Hardening | 1 2 | Parses ELF, PE, and Mach-O metadata and inspects ELF hardening, including NX, PIE, RELRO, and stack canaries. |
| Disassembly & Code Profiling | 1 2 | Provides Capstone disassembly with memory-efficient streaming, targeted windows, and optional Angr-backed dataflow analysis. |
| Architecture & ABI Models | 1 2 | Normalizes x86 instructions and models register aliases, calling conventions, and Linux syscalls in 32-bit and 64-bit modes. |
| Function Discovery | 1 2 | Recovers function entry points from stripped binaries and flat ROMs using prologues, calls, reset vectors, and alignment patterns. |
| Debug Metadata & Symbol Recovery | 1 2 | Recovers ELF function addresses and names from unwind metadata, DWARF, and BTF, plus i386 string cross-references. |
| Packed & Encrypted Region Detection | 1 | Locates compressed, encrypted, and packed regions using sliding-window Shannon entropy analysis. |
| Dynamic Function Emulation | 1 | Emulates ARM64 and x86-64 leaf functions to corroborate static findings with observed register and memory writes. |
| Cryptographic Analysis | 1 2 | Detects cipher implementations, recovers XOR and affine keys, and tests JWT secrets and RSA/ECDSA nonce reuse. |
ReAct (Reasoning + Acting)
| Capability | Code | Description |
|---|---|---|
| AI-Guided Analysis | 1 2 | Pre-fetches function context and prior results for single-call LLM naming, role analysis, and patch hypotheses. |
| Semantic Code Search | 1 | Ranks functions by natural-language queries using fast vector embeddings, helping analysts locate relevant code before manual disassembly. |
| Vulnerability Hypothesis Tracking | 1 | Ranks competing vulnerability hypotheses as evidence accumulates and preserves investigation state across sessions. |
| Evidence Scoring & Validation | 1 2 | Ranks probes by expected information gain and executes approved adapters to gather evidence for competing hypotheses. |
| Cross-Target Learning | 1 2 | Reuses productive findings, queries, and vendor-specific sink patterns across related targets while discarding unproductive patterns. |
| Function Identification & Naming | 1 2 | Automatically names known functions using FLIRT-style signatures and preserves analyst-assigned names across binary versions. |
| Approximate Function Matching | 1 2 | Indexes opcode-category sequences for fast approximate matching and DTW-based similar-function search. |
| Vulnerability Pattern Mining | 1 2 | Mines prior findings for CWE trends and scans binaries for registered CVE-specific byte patterns. |
| KASAN Finding Validation | 1 | Verifies KASAN candidates in stripped production binaries, confirming 11 of 14 candidates in TencentOS kernel 6.6.119. |
Security Research
| Capability | Code | Description |
|---|---|---|
| Data-Flow Taint Analysis | 1 2 | Traces attacker-controlled data with function-level analysis on x86-64 and intra- or interprocedural analysis on ARM64. |
| Dangerous Call Classification | 1 2 3 | Classifies sink arguments on x86-64, ARM32, and LoongArch64 and filters constant-format calls before taint analysis. |
| Input Validation & Call Wrappers | 1 2 | Discovers transitive sink wrappers and profiles sanitization coverage to refine vulnerability triage. |
| Network Attack-Surface Detection | 1 | Prioritizes propagated-argument sinks in functions reachable from network input, excluding unreachable candidates from taint analysis. |
| Exploit Path Validation | 1 2 | Checks path feasibility with bounded Z3 solving and stores reviewed findings for later analysis and export. |
| Format-String Vulnerabilities | 1 | Finds non-constant format arguments in logging calls and includes provenance traces for assessing attacker control. |
| Heap Memory Vulnerabilities | 1 2 | Detects allocation overflows, use-after-free, double-free, and off-by-one patterns on x86-64 and LoongArch64. |
| Parser Length & Bounds Checks | 1 2 | Detects length-subtraction underflows and validates TLV chunk bounds in protocol parser loops. |
| Unsafe Input & Function Checks | 1 2 | Classifies risky sscanf call sites and flags deprecated or unsafe imported functions. |
| Unauthenticated Attack Surface | 1 | Maps unauthenticated routes and their reachable sinks by reconstructing dispatch and authentication wrappers from binaries. |
| Web & Fortinet Attack Surfaces | 1 2 | Reconstructs Apache handler chains and maps Fortinet CMDB operations to command-execution sinks. |
| SQL & Lua Injection Analysis | 1 2 | Classifies SQL query provenance in binaries and traces request input to Lua evaluation in source trees. |
| Compiler Defects & Hardening | 1 2 | Detects LoongArch64 min/max miscompilations and missing or inconsistent binary hardening. |
| Windows Driver Vulnerabilities | 1 2 | Ranks BYOVD primitives by impact and identifies METHOD_NEITHER IOCTL handlers that expose raw user-space pointers. |
| Source Code Security Analysis | 1 2 | Profiles source files and traces dangerous sinks back to request-input sources across repository call graphs. |
| Exploit Development & Scoring | 1 2 | Builds encoded shellcode and ROP chains, calculates cyclic offsets, and scores findings with BARE for Metasploit modules. |
Firmware Analysis
| Capability | Code | Description |
|---|---|---|
| Fortinet Firmware Analysis | 1 2 | Recovers FortiOS partition keys and extracts firmware containers into analyzable ELF and filesystem images. |
| Junos Firmware Analysis | 1 2 3 | Extracts signed Junos packages and ISO9660/Rock Ridge userlands, verifies RSA/EC signatures, and compares releases with MIPS32/o32-aware analysis. |
| Firmware Extraction & Triage | 1 2 | Scans firmware signatures, strings, and entropy and extracts partitions from supported vendor containers. |
| IBM AIX Binary Analysis | 1 2 | Parses XCOFF32/64 sections and symbols and extracts BFF package archives without the AIX toolchain. |
| ECU Architecture Detection | 1 2 | Identifies raw-ROM architectures and classifies code, calibration data, and interrupt-vector regions before disassembly. |
| Embedded Architecture Decoding | 1 2 | Decodes C166/C167 and TI C28x instructions and recovers function starts from ECU firmware. |
| ECU Security Analysis | 1 2 | Detects predictable UDS and KWP2000 seeds and traces diagnostic input to memory writes on TriCore. |
| Calibration & CAN Analysis | 1 2 3 | Parses ECU calibration definitions and maps CAN frames to named signals using DBC layouts and scaling metadata. |
| Texas Instruments & ML Firmware | 1 2 | Parses TI COFF2 symbols and detects embedded NNC/TVM models, weak normalization symbols, and NPU usage risks. |
| Legacy Binary Formats | 1 2 | Parses Motorola M88K COFF binaries and extracts files from Tandem NonStop Guardian PAK archives. |
Multi-Architecture Analysis Matrix
| Capability | Code | Description |
|---|---|---|
| Android App Analysis | 1 2 | Parses APK manifests and DEX metadata and audits exported components, secrets, dangerous APIs, and native interfaces. |
| HarmonyOS App Analysis | 1 2 3 | Reconstructs ArkTS modules as JavaScript-like pseudocode and surfaces embedded API keys and endpoint URLs. |
| Go Binary Analysis | 1 2 | Recovers Go function names from pclntab metadata and reconstructs command handlers and message framing in supported binaries. |
| Java & Spring Analysis | 1 2 | Parses Java artifacts and detects deserialization gadgets, XXE, JNDI injection, and exposed Spring Actuator endpoints. |
| Erlang & MicroPython Analysis | 1 2 | Lifts BEAM and MicroPython bytecode to pseudocode and flags dynamic execution and controlled hardware or network operations. |
| Python, Perl & Electron Analysis | 1 2 3 | Audits Python bytecode, traces Perl input into backticks, and detects insecure Electron windows, IPC, and renderer boundaries. |
| Browser Extension Security | 1 | Detects externally connectable extensions whose privileged message handlers process web requests without verifying sender identity. |
| LoongArch & nanoMIPS Analysis | 1 2 3 | Provides architecture-specific decoding, lifting, taint analysis, and sink classification for LoongArch64 and variable-width nanoMIPS. |
| C++ Call Recovery | 1 2 | Reconstructs C++ class hierarchies and resolves ARM64 and x86-64 virtual calls for accurate call graphs. |
| PowerPC Call Recovery | 1 2 3 | Resolves PowerPC indirect calls and ELFv1 trampolines and uses AltiVec density to identify signal-processing routines. |
| Windows Binary Analysis | 1 2 3 4 5 6 | Detects Windows CFG bypasses, exposed SEH handlers, and COM hijacks while extracting ETW providers and RPC interfaces. |
Protocol Analysis
| Capability | Code | Description |
|---|---|---|
| Protocol & Steganography Analysis | 1 2 | Reconstructs ARM64 protocol state machines and extracts cryptographic material hidden in firmware bitmap pixels. |
| TLS Security Analysis | 1 2 | Audits TLS certificates, key exchanges, transport protections, and session-resumption downgrade paths. |
| API Security Testing | 1 | Discovers undocumented APIs and tests major web transports for authorization, injection, SSRF, JWT, and OAuth weaknesses. |
| Nginx Security Testing | 1 | Fingerprints Nginx and probes for exposed status endpoints, alias traversal, proxy SSRF, and request smuggling. |
| AI & Agent Security | 1 2 | Audits AI endpoints, MCP tool flows, RAG stores, and agent-to-agent trust chains for injection and data exposure. |
Live Ecosystems
| Capability | Code | Description |
|---|---|---|
| Host & Privilege Assessment | 1 2 | Inventories hosts, detects process injection, traces syscalls, and identifies privilege-escalation misconfigurations. |
| Forensics & Malware Analysis | 1 2 | Collects Windows and Linux forensic artifacts, detects timestomping and rootkits, and recovers ELF binaries from memory. |
| Network & Industrial Protocols | 1 2 | Discovers services and ICS/OT protocols, extracts exposed PCAP credentials, and flags C2 or lateral-movement patterns. |
| Cisco Infrastructure Assessment | 1 2 | Audits Cisco appliance and data-center configurations, recovers weak credentials, and maps trust and lateral-movement paths. |
| Container & Kubernetes Security | 1 2 | Assesses container privilege, isolation, secret exposure, RBAC, and cloud-metadata risks. |
| VoIP Security Assessment | 1 | Enumerates VoIP services and gateways and detects unencrypted media, weak SIP registration, and toll-fraud exposure. |
DocIN (Documentation + Integrity)
| Capability | Code | Description |
|---|---|---|
| Binary Diffing & Patch Tracking | 1 | Matches functions across binary versions and reports instruction, callee, and string changes for patch review. |
| Sequence-Based Function Matching | 1 2 | Matches homologous functions with DTW and localizes patched instruction windows using matrix-profile distances. |
| Structural Function Matching | 1 | Matches functions across architectures and optimized builds by comparing control-flow topology instead of instruction sequences. |
| Module Security Quality Gate | 1 | Blocks commits with critical or high findings from cached ten-section security audits of Ablation modules. |
| Finding Export & Reporting | 1 2 3 | Exports findings as replayable YARA rules, SARIF 2.1.0, and JSON for analysis and reporting workflows. |
| Automated Vulnerability Sweeps | 1 2 | Runs resumable pre-filtering, sink classification, and taint phases, including eight Fortinet vulnerability profiles. |
| Game Engine Analysis | 1 | Identifies game engines and engine-specific RCE surfaces in stripped binaries using extensible signature and vtable patterns. |
| Threat Classification | 1 | Labels findings with MITRE ATT&CK technique and tactic IDs for export and reporting. |
| Software Composition & Supply Chain | 1 2 | Extracts library versions and provenance into SBOM-ready component records for supply-chain review. |
| Binary Ninja Plugin | 1 | Annotates Binary Ninja with cached function names, taint findings, and session verdicts at instruction level. |
Rubric Library
| Capability | Description |
|---|---|
| Index | A structured collection of named, versionable LLM "behavior specifications" that you can apply to different tasks to get consistent, high-quality analyses on demand. |
Setup & About
Install
pip install ablation-toolRequirements: Python >= 3.10 · capstone>=5.0.1 · numpy · lief · fastembed · pyelftools
Optional feature sets:
# All optional analyzers
pip install "ablation-tool[full]"
# CPython .pyc scanning and Apple BV41 decompression
pip install "ablation-tool[bytecode]"sentence-transformers, Anthropic, and Angr support are optional; the full extra includes them together with xdis and lz4.
Acknowledgments
The code couldn't exist without their ideas. Though no code was written by these authors, doctors, and engineers, their work has direct influence on the production of code that makes Ablation what it is.
Research Papers
Books supplied by www.oreilly.com | github.com/oreillymedia
| Title | Authors |
|---|---|
| The Art of Software Security Assessment | Mark Dowd, John McDonald, Justin Schuh |
| Practical Binary Analysis | Dennis Andriesse |
| Practical Malware Analysis | Michael Sikorski, Andrew Honig |
| Practical Reverse Engineering | Bruce Dang, Alexandre Gazet, Elias Bachaalany |
| Hacking: The Art of Exploitation (2e) | Jon Erickson |
| Learning Linux Binary Analysis | Ryan O'Neill |
| Windows Internals Part 1 & 2 | Pavel Yosifovich, Mark Russinovich, David Solomon, Alex Ionescu, Andrea Allievi |
| Rootkits: Subverting the Windows Kernel | Greg Hoglund, Jamie Butler |
| Advanced Compiler Design and Implementation | Steven Muchnick |
| Engineering a Compiler | Keith Cooper, Linda Torczon |
| Practical IoT Hacking | Fotios Chantzis, Ioannis Stais, Paulino Calderon, Evangelos Deirmentzoglou, Beau Woods |
| Inside the Android OS: Building, Customizing, Managing and Operating Android System Services | G. Blake Meike |
| Malware Analysis and Detection Engineering | Abhijit Mohanta, Anoop Saldanha |
| Evasive Malware | Kyle Cucci |
| Hacking Cryptography | Kamran Khan, Bill Cox |
| Real-World Cryptography | David Wong |
| Agentic GraphRAG | Anthony Alcaraz, Sam Julien |
Honorable Mention
Microsoft Excel (Data Analysis ToolPak). When analyzing closed infrastructure or securing black-box systems, this exact process is called timing analysis or telemetry reverse engineering. Without source code, the Data Analysis ToolPak mathematically deconstructs how an application works on the backend by strictly observing its inputs and outputs.
Real-World Results
Ablation has been used to analyze production firmware and kernel drivers from Cisco, IBM, TencentOS, Huawei, Fortinet, and more.
Following coordinated disclosure, the Cisco Product Security Incident Response Team (PSIRT) adopted Ablation for internal vulnerability triage and continues to use it to evaluate ongoing disclosure reports. Cisco Adaptive Security Appliance (ASA) LINA is among the artifacts analyzed, with findings submitted through CERT/CC VINCE.
| CVE | Product | Title | CVSS |
|---|---|---|---|
| CVE‑2026‑76420 | Secure Firewall Management Center (FMC) | Peer Impersonation | 9.0 Critical |
| CVE‑2026‑76412 | Secure Firewall Management Center (FMC) | Privilege Escalation to root | 8.5 High |
| CVE‑2026‑76413 | Secure Firewall Management Center (FMC) | Single Sign-On Token Forgery | 8.5 High |
| CVE‑2026‑76447 | Identity Services Engine (ISE) | OCSP Responder Authentication Bypass | 5.3 Medium |
Demonstrations
Ablation in Action

How to Use Ablation

Learn as You RE

Code Standards
This defines how software should be built, organized around four practice areas: preparing the development environment, protecting the codebase from unauthorized changes, writing software with security built into every layer, and responding when vulnerabilities surface after release.
What this means for Ablation in practice is a mandatory ten-section security audit on every module before it touches the repository. The audit covers input validation, memory handling, integer safety, error handling, concurrency, dependency security, injection prevention, secrets handling, logging, and residual risks. No module is committed without passing it.
Taint trackers, which are the modules that matter most if they get something wrong, carry an additional requirement: 85% statement coverage enforced by a hard gate in the test suite, verified against byte-exact synthetic instruction sequences that test ABI register behavior, not just whether the code runs without crashing. Dependencies are pinned with exact hashes and scanned weekly for known CVEs.
CISA asks software manufacturers to commit to three things: take ownership of the security outcomes of the people who rely on the software, be transparent about its limitations, and treat security as a requirement rather than a recommendation.
For a RE framework, taking ownership of security outcomes has a specific meaning. A taint tracker that misses a vulnerability does not just produce a wrong answer. It produces a result someone may act on as evidence the binary is clean. That is why a false negative in any Ablation taint tracker is classified as a CRITICAL defect.
Every tracker ships with a documented known-anomalies file describing the exact conditions under which it can produce false negatives, so a researcher knows when to apply manual verification on top of the automated result. The precommit gate is not advisory. No code enters the repository without passing it.
The US Department of Defense handbook for reverse engineering methodology defines four phases:
- Phase 1: Every engagement starts with a session file recording the target description, artifact hash, tool selection, and documentation plan before any analysis runs. The rule that semantic search runs before manual disassembly maps to the following phase.
- Phase 2: Requires characterizing a binary at the function level before doing detailed trace work. The
DynamicSandboxcovers the following. - Phase 3: The structured retrospective written at the close of every completed project maps to the final phase.
- Phase 4: The standards document tracks 29 specific requirements drawn from all three frameworks. All 29 are met.
Responsible Use & Contact
Responsible Use: Ablation is built for authorized security research. Use it only against systems you own or have explicit written permission to test. Running it against systems without authorization violates computer fraud laws in most jurisdictions. The author is not responsible for misuse.
Contact: Feel free to contact me if you have any questions, ideas, complaints, or bugs: