ALT-11 · Release · Reverse engineering platform
Paranoia
An open, local-first reverse engineering platform: disassembly, control-flow graphs, pseudocode and cross references for PE, ELF and Mach-O, on a Rust engine. No accounts, no telemetry, no network access — binaries never leave your machine.
- Status
- Early · v0.1.1
- Released
- 15 Oct 2026
- Runs on
- Windows (installer, portable) · any modern browser (WebAssembly) · command line
- Built with
- Rust · React · TypeScript · Electron
- License
- Apache-2.0
- Formats
- PE / PE32+ · ELF · Mach-O, including universal binaries
- Architectures
- x86 · x86-64 · AArch64
- Privacy
- No accounts, no telemetry, no network access
Architecture
1BinaryPE · ELF · Mach-O
Every file is treated as hostile. Loaders never trust sizes or offsets, analysis has hard limits, and the parsers are fuzzed with mutated real binaries so a corrupted file cannot make them panic.
2EngineRust · own process
A pure-Rust core — no I/O, no threads, no C dependencies — running in its own process. It analyses shell32.dll (24,500 functions, 1.5 million instructions) in under half a second, and the interface recovers if a file ever kills it.
3Interfacesandboxed renderer
React in a sandboxed Electron renderer: context isolation, no Node integration, a strict CSP and no navigation. Files are written only to paths the user has just chosen in a save dialog.
4Workspaceredb · per SHA-256
Names, comments, bookmarks and patches are keyed by the file's SHA-256 and stored locally — in redb on the desktop, in the browser's storage on the web build. Nothing is sent anywhere.
Problem and approach
Problem
The standard reverse engineering tools are expensive and closed, and many newer ones want your binaries in their cloud. For a malware sample, a client binary or unreleased firmware, uploading the file is often the one thing you cannot do.
Approach
A pure-Rust engine that treats every file as hostile, runs in its own process and has no network access — the same engine behind the desktop app, a command-line tool and a WebAssembly build that runs entirely in the browser.
What it does
- Formats
- PE and PE32+ with .NET detection, forwarders and TLS callbacks; ELF with PLT/GOT imports; Mach-O with universal binaries and chained fixups.
- Auto-analysis
- Recursive-descent function discovery seeded by entry points, exports, symbols and exception tables, with basic blocks and no-return awareness.
- Listing & graph
- IDA-style labels, jump arrows and clickable operands; a control-flow graph with true, false and unconditional edges.
- Pseudocode
- An x86/x64 lifter with calling-convention arguments, folded conditions, if and do-while structuring and stack variables.
- Search & patch
- Byte patterns with wildcards, text and immediates; a hex view with in-place patching and “save patched file”.
- Triage
- MD5, SHA-1, SHA-256 and imphash, an entropy map, and checksec-style mitigations: ASLR, DEP, CFG, RELRO, PIE, canaries.
- Interop
- MSVC, Itanium and Rust demangling; names and comments saved per file hash; export to an IDA IDC script.
From the command line
The same engine is a scriptable CLI — handy in CI or when triaging many files at once.
paranoia info sample.exe
paranoia functions sample.exe
paranoia disasm sample.exe --at main -n 40
paranoia pseudo sample.exe main
paranoia xrefs sample.exe CreateFileW
paranoia strings --referenced sample.exe --jsonWhat comes next
- Data definitions — undefine, make data and strings, switch tables, typed globals.
- Decompiler v2 — SSA-based expression propagation, variable recovery, for / switch structuring.
- Signatures and debug info — FLIRT-style library matching, PDB and DWARF symbols.
- Scripting — embedded Python and JS against the engine API.
- An optional AI assistant that runs locally (Ollama, LM Studio) or with your own key. Nothing leaves the machine unless you opt in.
From the public roadmap, in its order. Why a local-first tool matters now is the subject of ALT-12.
Known limits
- No debugger, scripting, type libraries or FLIRT-style signatures yet — all tracked in the public roadmap.
- Pseudocode is an x86/x64 lifter with if and do-while structuring, not yet a full decompiler.
- Switch and jump tables are not recovered yet; an indirect jump ends a block.
- Windows builds are not code-signed yet, so SmartScreen may ask for confirmation on first launch.
Official channels
Anything not listed here, or on this site, does not speak for Paranoia.