-
-
Notifications
You must be signed in to change notification settings - Fork 0
reference
1-3-7 edited this page Jun 17, 2026
·
1 revision
The authoritative source is always disrobe <command> --help. This page is a complete map of the command surface. [--out] and the standardized [--emit ...] selector are available on most passes; see the global flags for flags that apply everywhere.
| Command | Purpose |
|---|---|
disrobe py decompile <pyc> |
Decompile a .pyc to source. --backend native (the only supported value). --no-roundtrip skips the recompile-equivalence check. |
disrobe py disasm <pyc> |
Per-instruction disassembly (1.0-3.15 + PyPy/MicroPython/Jython/IronPython/Brython). |
disrobe py deob <src> |
Peel a source obfuscator. --cleanup runs a ruff-AST fold. |
disrobe py extract <archive> |
Extract a wheel / sdist / egg / .whl / .zip / any archive. |
disrobe py sourcedefender <pye> |
Decrypt a SourceDefender .pye envelope. |
disrobe pyarmor unpack <py> |
Unpack PyArmor v6-v9-pro. --allow-dynamic permits the dynamic-hook fallback (trusted/sandboxed samples only). --dynamic-timeout <SECS>. --mode auto|standard|super. --target <PYVER>. --allow-bcc. --strict. --no-cextract / --cextract-only. --all-emits writes stubs for all 12 emit kinds. --cache <DIR>. |
disrobe pyinstaller extract <exe> |
Extract a PyInstaller build (2.x-6.20+, AES decrypt). |
disrobe pyinstaller detect <exe> |
Report cookie / Python version / TOC offsets without extracting. |
disrobe pyfreeze extract <exe> |
Extract cx_Freeze / py2exe / shiv / pex / PyOxidizer / Briefcase. |
disrobe pyfreeze detect <exe> |
Identify the freezer without extracting. |
disrobe nuitka detect|extract|symbols|decompile|const <input> |
Nuitka flavor detect, --onefile extract, symbol scan, constants decompile, single .const decode. |
| Command | Purpose |
|---|---|
disrobe js deob <js> |
Deobfuscate (obfuscator.io, JS-Confuser, Jscrambler, esoteric encoders). |
disrobe js unbundle <js> |
Split a bundle into per-module sources (11 bundlers). |
disrobe js v8 <blob> |
Inspect V8 .jsc / Node SEA / nexe / nw.js / Electron .asar. |
disrobe wasm decompile <wasm> |
Lift to --target json|rust|ts|wat|c. |
disrobe wasm deob <wasm> |
Reverse Wasm obfuscator families. |
disrobe wasm component <wasm> |
Parse a Component Model envelope. |
disrobe wasm gc-types <wasm> |
Recover the GC type graph. |
| Command | Purpose |
|---|---|
disrobe jvm decompile <class|jar|dex|apk> |
Decompile via --backend cfr|vineflower|procyon|jadx. |
disrobe jvm extract <jar|apk> |
Extract container + dump classfile inventory. |
disrobe jvm backends |
Report JVM/Android backends on PATH. |
disrobe apk <apk> |
Decode the binary AndroidManifest.xml, map resource ids to names, and dump each signer certificate's SHA-256. --out <DIR> writes the decoded manifest and resource table to disk. |
disrobe dotnet decompile <dll|exe> |
Decompile via --backend ilspy|dnspy|dnspyex|de4dot. |
disrobe dotnet analyze <dll> |
PE/CLR metadata, protector detection, R2R + NativeAOT probe. |
disrobe dotnet backends |
Report .NET backends on PATH. |
| Command | Purpose |
|---|---|
disrobe native decompile <bin> |
Ghidra-headless decompile. --emit source,disasm,ast,cfg,ir,manifest,sourcemap,symbols,strings,imports,signatures,report. |
disrobe native symbols <bin> |
Dump symbols, sections, segments, imports, and debug info. |
disrobe native identify <bin> |
Fingerprint compiler / packer / protector / installer, each routed to its pass. |
disrobe native unpack [bin] |
Detect + unpack UPX/kkrunchy/NSPack/Petite/MPRESS/MEW/FSG/ASPack/PECompact/Yoda's Crypter via in-house decoders + x86 stub emulator. Input is optional; --list shows all supported packers. |
disrobe native devirt <bin> |
Devirtualize the bytecode-VM tier: recover the handler table, lift to a re-executable IR + pseudo-code. |
disrobe native export <bin> |
Unpack, recover symbols, and export a backend-ready bundle: a rebuilt loadable PE + a Ghidra post-script / IDAPython / JSON symbol map. --format ghidra|ida|json (default ghidra). |
disrobe native disasm <bin> |
Per-function listing / --emit cfg-dot CFG / --emit json / --raw linear sweep (--syntax intel|at&t|nasm|masm). Accepts a .dr envelope. |
disrobe native callgraph <bin> |
Whole-program call graph as Graphviz DOT. |
disrobe native patch <bin> |
Rewrite bytes at a VA (or nop a span) and revalidate the image. |
disrobe native sigmaker <bin> |
Wildcarded byte signature from a function, uniqueness-tested. |
disrobe native diff <a> <b> |
Match functions across two builds by content + CFG fingerprint. |
disrobe native entropy <bin> |
4KB sliding-window Shannon entropy; ASCII heat-strip + byte histogram + packed-region runs. --format text|json|svg (default text), --svg <out> for a dark-theme entropy map with section overlays. |
disrobe native signatures <bin> |
Crypto-constant fingerprints (AES, SHA, ChaCha20). --flirt <sig> to match a FLIRT DB. |
disrobe native fingerprint <bin> |
Aggregate crypto-constant + FLIRT + string-xref sidecar at .disrobe/fingerprints/<stem>.json. --flirt <sig>. |
disrobe native sbom <bin> |
CycloneDX 1.5 SBOM from cargo-auditable metadata embedded in the binary. |
disrobe native graph <bin> |
Import/export table as Graphviz DOT. |
disrobe query <bin|.dr> <q...> |
Queryable IR: functions, calls-to <sym>, xrefs-to <sym>, string-decoders, complexity-over <n>, capability <network|crypto|filesystem|process>. Accepts a raw binary or a Disasm-rung .dr envelope. |
disrobe capabilities <bin|.dr> |
Rule engine over the IR, mapping behaviors to MITRE ATT&CK + MBC with per-match evidence. |
| Command | Purpose |
|---|---|
disrobe go recover|info <bin> |
Go symbol recovery / build fingerprint. |
disrobe lua decompile|deobfuscate|detect <chunk> |
Lua decompile / obfuscator peel / dialect detect. |
disrobe php decode|deobfuscate|extract <input> |
Encoder decode / eval-chain peel / Phar extract. |
disrobe ruby decompile|detect <input> |
Ruby artifact analysis / flavor detection. |
disrobe beam parse|lift|disasm <beam> |
BEAM chunk parse / Core Erlang lift / Code disasm. |
disrobe pickle disasm|decompile|safety|trace|polyglot|model-detect <input> |
Pickle static analysis suite. |
disrobe swift classdump|shield-undo|confidential-decrypt <input> |
Swift/ObjC class-dump, SwiftShield rename-undo, Confidential XOR-decrypt. |
disrobe macho dump|classdump|slices <input> |
Mach-O / fat / .ipa inspection. |
disrobe as3 disasm|tags <swf> |
AS3 DoABC disasm / SWF tag list. |
disrobe hermes decompile|disasm|info <bundle> |
Hermes JS-surface lift / disasm / header. |
disrobe flutter dump|decompile|kernel|disasm|map <input> |
Flutter Dart AOT + kernel inspection. |
disrobe mobile detect|extract|hermes|flutter <input> |
Mobile runtime pipeline. |
| Command | Purpose |
|---|---|
disrobe detect <input> |
Run every obfuscator/packer catalog detector against a file and report each hit (pass, obfuscator, confidence, markers). |
disrobe auto <input> |
Auto-detect + chain. --max-depth <N> (default 8), --capture-stages, --emit recovery, --dry-run. A directory input is batch-processed recursively (--include <GLOB>, --exclude <GLOB>, --batch-max-depth <N>, --jobs <N>) into an aggregate manifest.json. |
disrobe chain <input> |
Explicit pipeline. --chain 'auto:8' or 'pyarmor+py-decompile', --chain-pin <ver>, --capture-stages. |
disrobe diff <left> <right> |
Structurally diff two chain.json documents (passes, stage BLAKE3 hashes, sizes, verdicts). |
disrobe guard verify <subject> --reference <ref> |
Verify a subject chain.json's per-stage output hashes against a committed reference. |
disrobe guard check <path> [--root <subtree>...] |
Deny writes to ground-truth stage paths (out/**/stages, out/**/final, .disrobe-stage-lock). --root adds extra protected subtrees (repeatable). |
disrobe envelope create|inspect|verify|diff|migrate-check <dr> |
.dr envelope operations. |
disrobe verify <dr> |
Alias for disrobe envelope verify. |
disrobe scan <path> |
Scan raw bytes for leaked credentials. |
disrobe ioc <path> [--format text|json|sarif] [--defang] |
Extract indicators of compromise (URLs, IPs, domains, emails, paths, registry keys, wallets, crypto constants); decodes one base64/hex layer. |
disrobe strings <path> [--min-len N] [--no-decode] |
Cross-format string extraction: ASCII + UTF-16LE, with single-byte XOR / base64 / ROT-n / stack-string deobfuscation. |
disrobe behavior <path> |
Behavior / capability summary across 7 categories, tagged with MITRE ATT&CK technique ids. |
disrobe yara parse <path> |
Parse a YARA ruleset into a typed AST (read-only, no matching). |
disrobe yara generate <input> [--name N] [--sha256 H] [--date D] |
Generate a candidate YARA rule from an artifact; output round-trips through the parser. |
disrobe status |
Summarize ./out/: per-stage counts, sizes, manifests. |
disrobe context --out <dir> |
Summarize a recovery report (status, confidence, verdict, provenance). |
disrobe report <dir-or-input> [--format text|json|markdown|html] |
Consolidate a completed run (or raw input) into a forensic summary: identity, topology, per-stage verdicts/scores, artifact inventory, timings. --format html emits a self-contained, offline, dark-theme report (inline SVG bars, IOC + ATT&CK tables, XSS-escaped). |
| Command | Purpose |
|---|---|
disrobe init [--ide claude|cursor|windsurf|aider] [--force] |
Scaffold a .disrobe/ workspace. |
disrobe config [show] |
Print the resolved .disrobe.toml config (honors --json). See project configuration. |
disrobe config init [--out <path>] [--force] |
Write a documented .disrobe.toml template. |
disrobe annot refresh|regenerate |
Rebuild a symbol annotation file. |
disrobe rename <old> <new> [--note] |
Record an append-only rename. |
disrobe passes |
List every registered pass with a one-line capability summary. |
disrobe explain <code> |
Look up a DR-* error code and print its description and common fixes. |
disrobe doctor [--auto-install] [-y] |
Probe ~50 optional external tools; report installed, missing, or stale. |
disrobe install <tool> [--list] [-y] [--dry-run] |
Install one optional tool via the native package manager. |
disrobe install-deps [<dep>] [--all] [--dry-run] |
Install heavyweight deps (Ghidra) from upstream releases. |
disrobe serve [--bind <ADDR>] [--stdio|--mcp|--grpc] |
Run the daemon. See the daemon. |
disrobe completions <shell> [--install] [--rc-file <PATH>] |
Generate shell completions (bash, zsh, fish, PowerShell, elvish). |
disrobe man [--out <dir>] |
Generate man pages (one .1 per subcommand). |
disrobe bug-report [--out <PATH|->] |
Collect environment, manifests, and tooling versions into a markdown bug report. |
disrobe self-update [--check-only] [--dry-run] |
Print self-update guidance (source-only distribution; no network by default). |
This wiki is generated from docs/src in the disrobe repository by scripts/wiki_sync.py. Edit the docs there, not the wiki pages here.
Getting started
Architecture
- Overview
- The five-rung IR ladder
- Passes and the capability model
- The chain runner
- The .dr envelope
- LLM sidecar and provenance
Reverse-engineering toolkit
Language and format guides
- Python
- JavaScript / TypeScript
- WebAssembly
- JVM and Android
- .NET / CIL
- Native (PE / ELF / Mach-O)
- Go
- Lua
- PHP
- Ruby
- BEAM (Erlang / Elixir)
- Swift / Objective-C
- ActionScript 3 / Flash
- Mobile (Hermes / Flutter)
- Python pickle
- Shell / PowerShell
- Containers and archives
Reference
- CLI overview
- Global flags
- Command reference
- Project configuration
- Batch directory processing
- Run reports
- Analysis-depth commands
- Diff and guard tooling
- The daemon: HTTP, gRPC, LSP, MCP
- Use it as a library
- Python bindings
- The browser playground
- Forensics and malware-safety posture
- Threat model
Integrations
Project