Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
disrobe — Rust-CLI-Suite, die nativen Code, Bytecode, Skripte, Firmware und App-Pakete aus über 15 Ökosystemen über eine einzige automatische Pipeline statisch dekompiliert, deobfuskiert und entpackt. | Kitploit
Tools/GitHubGitHub/1-3-7/disrobe
Android-SicherheitStatische AnalyseReverse EngineeringMalware-AnalyseMobile SicherheitBinäranalyseFirmware-Analyse
GitHub1-3-7/disrobe

disrobe

Rust-CLI-Suite, die nativen Code, Bytecode, Skripte, Firmware und App-Pakete aus über 15 Ökosystemen über eine einzige automatische Pipeline statisch dekompiliert, deobfuskiert und entpackt.

Repository anzeigen
11362vor 5 TagenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite
disrobe: Quellcode, Struktur und Bytes aus kompilierter Software wiederherstellen

Erste Schritte · Unterstützte Eingaben · Automatische Wiederherstellung · Werkzeugvergleiche · Nachweise · Dokumentation

Die Software darunter sehen

Disrobe ist eine Rust-Kommandozeilen-Suite zum Dekompilieren, Deobfuskieren und Entpacken von Software. Nutze sie, um eine unbekannte Datei zu triagieren, Code für Reverse Engineering wiederherzustellen, Indikatoren für eine Untersuchung zu extrahieren oder Artefakte für einen Disassembler vorzubereiten.

Stelle Python aus Bytecode und eingefrorenen Anwendungen wieder her, Java aus Classfiles und DEX, C# aus CIL, JavaScript aus Bundles, Lua aus benutzerdefinierten virtuellen Maschinen sowie C oder Rust aus nativem Code. Extrahiere Dateien aus Installern, Firmware, mobilen Paketen und Electron-, Tauri- oder Wails-Anwendungen. Halte wiederhergestellten Quellcode, Symbole, Strings, Typen und Provenienz für die weitere Analyse zusammen.

Der vollständige Build katalogisiert 170 Familien über 15 Ökosysteme hinweg und erkennt 103 Container-Formate. disrobe auto identifiziert jede Ebene, führt einen passenden Durchlauf aus und folgt wiederhergestellte Kindelemente in ihre eigenen Wiederherstellungspfade. Dedizierte Befehle bieten feinere Steuerung, Analyseberichte und optionale Backends. Die Wiederherstellung läuft standardmäßig statisch ab; Quellcode, Struktur, Teilausgaben und Grenzen fehlender Schlüssel bleiben im Ergebnis unterscheidbar.

Wenn Disrobe für dich nützlich ist, ziehe in Betracht, das Repository mit einem Stern zu versehen.

In Aktion erleben

Disrobe CLI: Software entpacken, wiederherstellen und inspizieren

Das vollständige Video ansehen · Das Transkript lesen

Zwanzig CLI-Befehle in 2 Minuten 12 Sekunden: eine native ausführbare Datei entpacken, Python und Lua wiederherstellen, JavaScript-Module aufteilen, Source Maps wiederherstellen, WebAssembly und Android-Ressourcen inspizieren, Indikatoren extrahieren und Berichte sowie Artefakt-Hashes bewahren. Das letzte Kapitel zeigt Projektkonfiguration, IDE-Einrichtung, Analysten-Annotationen und Shell-Vervollständigungen. Das Transkript enthält das vollständige Befehlsverzeichnis des aufgezeichneten Builds; die Fähigkeitskarte erläutert ihre Unterstützungsgrenzen.

Erste Schritte

Lade das Archiv für deine Plattform von GitHub Releases herunter, prüfe es gegen die SHA256SUMS des Releases und lege disrobe in deinen PATH. Release-Archive enthalten Signatur-Bundles; die Verifikationsanleitung erläutert, wie man sie inspiziert.

PlattformRelease-Ziele
Windowsx86-64, ARM64
macOSx86-64, ARM64
Linuxx86-64 und ARM64 mit glibc; x86-64 mit musl

Prüfe die installierte Binärdatei:```sh disrobe --version disrobe --help

root@kitploit:~
Um die CLI aus einem Klon zu erstellen, installiere die Rust-Toolchain des Repositorys und die [nativen Build-Voraussetzungen](https://github.com/1-3-7/disrobe/blob/main/docs/src/installation.md) und führe dann aus:```sh
cargo build --locked --release -p disrobe-cli --bin disrobe

Die ausführbare Datei ist target/release/disrobe oder target/release/disrobe.exe unter Windows. Siehe die Installationsanleitung für Feature-Flags und Slim-Builds.

Eine Anwendung wiederherstellen

Beginnen Sie mit einer Anwendung, einer Bibliothek oder einem Paket. Identifizieren Sie es, stellen Sie seine erkannten Schichten wieder her und untersuchen Sie dann die Wiederherstellungszusammenfassung:```sh disrobe identify path/to/application disrobe auto path/to/application --out recovered/ --capture-stages disrobe context --out recovered/

root@kitploit:~
`identify` meldet das Format und die verfügbaren Signale. `auto` extrahiert und stellt die erkannten Ebenen wieder her. `context` fasst die resultierenden Durchläufe, die Konfidenz und die Herkunft zusammen. Mit `--capture-stages` können Sie jede Stufe unter `recovered/01-*/`, `recovered/02-*/` und `recovered/final/` untersuchen; `chain.json` zeichnet die Topologie und Hashes auf, und `recovery.json` zeichnet Ergebnisse und Zeitmessungen auf.

Verwenden Sie einen dedizierten Befehl, wenn Sie die benötigte Ausgabe kennen:```sh
disrobe py decompile module.pyc --out python-source/
disrobe js deob bundle.js --full --out readable.js
disrobe native decompile application.exe --out native-source/
disrobe native export packed.exe --format ghidra --out ghidra-input/
disrobe webview desktop.exe --out frontend/

Der native Decompiler gibt standardmäßig C auf x86-64 aus; --format rust wählt Rust. AArch64, ARM32 und MIPS32 geben Pseudo-C aus. native export baut unterstützte gepackte PE-Images für ein externes Analysewerkzeug neu auf; webview schreibt den wiederhergestellten Frontend-Asset-Baum, ohne die Anwendung zu starten.

Ein kleines, inspizierbares Artefakt ausprobieren

Das Repository enthält ein winziges WebAssembly-Modul für den Browser-Playground. Aus einem Klon heraus, mit der vollständigen CLI in deinem PATH:```sh disrobe wasm decompile playground/public/samples/add.wasm --target json --out add.summary.json disrobe wasm decompile playground/public/samples/add.wasm --target wat --out add.lifted.wat disrobe auto playground/public/samples/add.wasm --out recovered/ --capture-stages

root@kitploit:~
Der erste Befehl schreibt `add.summary.json`; der zweite schreibt WebAssembly-Text nach `add.lifted.wat`. Die automatische Wiederherstellung
wählt eine verfügbare Kette aus und schreibt ihre Artefakte unter `recovered/`; `--capture-stages` behält
Zwischenergebnisse. Diese Operationen untersuchen das Modul, ohne seine exportierte Funktion auszuführen.

Untersuchen Sie die wiederhergestellten Dateien zusammen mit dem Bericht: Die Identifizierung allein belegt keine Wiederherstellung. Nicht unterstützte Konstrukte, fehlendes Schlüsselmaterial und nicht verfügbare Ketten erscheinen im Ergebnis. Der [Ergebnisleitfaden](https://github.com/1-3-7/disrobe/blob/main/docs/src/reading-a-result.md) erklärt Artefakte, Diagnosen, Teilergebnisse und Provenienz.

[Den Browser-Playground öffnen](https://1-3-7.github.io/disrobe/playground/) · [Dem Quickstart folgen](https://github.com/1-3-7/disrobe/blob/main/docs/src/quickstart.md)

## Finden Sie Ihre Eingabe

**Recover** (Wiederherstellen) bedeutet, dass ein erreichbarer Pfad Quellcode, Bytes oder Struktur ausgibt. **Partial** (Teilweise) bedeutet, dass nur ein Teil dieser Informationen wiederhergestellt wird. **Detect-only** (Nur-Erkennung) bedeutet, dass die Familie identifiziert wird, ohne ihren geschützten Inhalt wiederherzustellen. Diese Stufen beschreiben Operationen auf unterstützten Eingaben; ein Familienname allein ist keine Garantie dafür, dass jede Version oder Konfiguration wiederhergestellt wird. Die folgenden Listen enthalten den vollständigen Familienkatalog und zusätzliche Formate, die durch dedizierte Befehle und Extraktoren bereitgestellt werden.

| Eingabe | Wiederherstellung und Ausgabe | Befehle und Leitfaden |
|---|---|---|
| Python | CPython 1.0 bis 3.15 Bytecode und Marshal zu Quellcode; PyPy, MicroPython `.mpy` v0 bis v6, Jython, IronPython und Brython Disassembly; Extraktion eingefrorener Payloads; Cython `.pyd`/`.so` Namen, Signaturen und struktureller Fallback | `py`, `pyinstaller`, `pyarmor`, `pyfreeze`, `nuitka` · [Python](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/python.md) |
| JavaScript / TypeScript | Quellcode-Deobfuskierung, Umkehrung der Minifizierung, Modulaufteilung, Source Maps, V8 Cached-Data- und Packaged-Runtime-Inspektion | `js` · [JavaScript](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/javascript.md) |
| WebAssembly | `.wasm` zu WAT, Rust, TypeScript, C-Pseudocode oder JSON; Component Model und GC-Typgraphen-Inspektion; unterstützte Obfuskierungsumkehrung | `wasm` · [WebAssembly](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/wasm.md) |
| JVM / Android | `.class`, JAR, DEX, APK, AAB; Java-Quellcode, Kotlin/Scala-Idiome, Manifest- und Signierungsinformationen, Protector-Berichte und Mapping-Sidecars | `jvm`, `apk` · [JVM und Android](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/jvm-android.md) |
| .NET | PE/CLR-Metadaten und CIL zu C#, F# oder VB-Pseudocode; ReadyToRun- und Native-AOT-Inspektion; Extraktion von Single-File-Bundles | `dotnet` · [.NET](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/dotnet.md) |
| Native | PE32/PE64, EFI PE, ELF32/ELF64, Kernelmodule, Thin/Fat Mach-O, COFF, MZ, NE, LE, LX und Raw-Code-Identifizierung oder -Analyse; Quellcodeausgabe auf den oben genannten architekturspezifischen Pfaden | `native`, `macho`, `semdiff` · [Native](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native.md), [decompile](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native-decompile.md) |
| Go | PE/ELF/Mach-O Runtime-Metadaten, entfernte Funktions- und Typnamen, `embed.FS`-Dateien, Garble-Berichte und wiederherstellbare Literale | `go` · [Go](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/go.md) |
| Swift / Objective-C | Mach-O-Klassen, Protokolle, Felder, Selektoren, demangelte Symbole; Universal-Slices; dyld Shared-Cache-Dylibs | `swift`, `macho` · [Swift](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/swift.md) |
| Lua | Lua 5.1 bis 5.4, LuaJIT 2.0/2.1, Luau-Bytecode, Garry's Mod Lua (GLua); Quellcode- und pro-Eingabe-Treueberichte; unterstützte VM- und String-Wiederherstellung | `lua` · [Lua](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/lua.md) |
| PHP | Quellcode-/Eval-Ketten-Ablösung, Literal-Key-Decode-Schleifen und AES-Schichten, Phar-Extraktion, serialisierte `op_array`-Wiederherstellung; kommerzielle Encoder-Hüllen bleiben schlüsselbeschränkt | `php` · [PHP](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/php.md) |
| Ruby | MRI/YARV 2.6 bis 3.4 InstructionSequence-Binärdateien und mruby RITE-Bytecode zu Ruby; Freezer- und AOT-Klassifizierung | `ruby` · [Ruby](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/ruby.md) |
| Erlang / Elixir | BEAM-Module und EZ-Archive; erhaltener abstrakter Code oder `Dbgi` zu Quellcode, Core-Erlang-Fallback, Instruktionsauflistung | `beam` · [BEAM](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/beam.md) |
| ActionScript 3 | SWF FWS/CWS/ZWS `DoABC`-Blöcke und roher ABC-Bytecode zu Disassembly und AS3-Pseudocode | `as3` · [ActionScript](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/as3.md) |
| Mobile Runtimes | Hermes v60 bis v96 Header-Parsing, v62/v71/v74/v76/v83/v84/v89/v96 Pseudo-JavaScript-Lift; Flutter Dart Kernel-Quellcodekörper; ARM64 AOT-Deklarationen, Strings und Disassembly | `hermes`, `flutter`, `mobile` · [Mobile](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/mobile.md) |
| Shell / Dokumente | PowerShell, Bash, Batch, VBScript, WSH; VBA3/5/6/7 P-Code und Stomping; Office-Makro-Quellcode, BIFF8/BIFF12 XLM-Formeln, PDF-eingebettete Skripte/Aktionen | `shell` · [Shell und Dokumente](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/shell.md) |
| Andere Sprachartefakte | Perl Op-Trees/Bytecode, R RDS und Rcpp-Metadaten, Tcl Starkits, Haxe JS/SWF/HashLink/Neko-Ausgaben; Nim, Zig, Crystal und D Fingerprints, Symbole und Teilstruktur | `auto`, Bibliotheks-APIs · [Skriptsprachen](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/shell.md), [native](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native.md) |
| Python pickle | Protokoll-Disassembly, symbolischer Trace, Rekonstruktion und Klassifizierung ohne Aufruf von Pickle-Reducern | `pickle` · [Pickle](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/pickle.md) |
| Archive / Firmware / Frontends | Die vollständige Container-Liste unten; Electron ASAR, Tauri v1/v2 eingebettete Maps, Wails v2 `embed.FS`-Bäume | `extract`, `webview`, `auto` · [Container](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/containers.md), [webview](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/webview.md) |

<details>
<summary><strong>Python: jeder benannte Freezer, Protector und Quellcode-Obfuskator</strong></summary>

| Familie oder Format | Unterstützung und Voraussetzung |
|---|---|
| PyInstaller 2.x bis 6.20+ | Wiederherstellung eingebetteter Archive und Bytecode, einschließlich unterstützter AES-CTR/CFB-Schichten |
| Nuitka onefile, standalone, module, wheel | Extraktion von Onefile-Payloads; Wiederherstellung von Symbolen und Python-sichtbarer Struktur aus kompilierten Formen |
| cx_Freeze, py2exe, shiv, pex, Briefcase | Packager-Extraktion über `pyfreeze`; der Befehl bleibt experimentell |
| PyOxidizer | Experimentelle, unvalidierte Extraktion |
| SourceDefender `.pye` | Statische Entschlüsselung über `py sourcedefender` und `sourcedefender.decrypt` |
| PyArmor v3 (Legacy-DES), PyArmor v4 (Legacy-Mixed), PyArmor v5 (Legacy-AES) | Nur-Erkennung: RSA-umhüllte Schlüsselgrenze |
| PyArmor v6, PyArmor v7 | Teilweise statische Wiederherstellung; Super-Modus und nicht verfügbare Schlüssel schränken die Ausgabe ein |
| PyArmor v8, PyArmor v9 / 9-Pro | Statische Wrapper-Wiederherstellung, wo Schlüsselmaterial verfügbar ist. Das veröffentlichte <!-- m:pyarmor_frac -->72 / 72<!-- /m --> Ergebnis zählt vollständige Root-`CodeObject`-Dekodierung nur für benannte v8/v9 Default-Trial-Wrapper; es belegt keine Quellcode-Äquivalenz und deckt weder registrierte Lizenz/Pro, BCC noch Super-Modus ab |
| Kramer / Specter, Berserker, BlankOBF, PlusOBF, Wodx, pyobfuscate.com, pyobfuscate.com (2026 XOR/Lambda), PyObfuscator (mauricelambert), Manglify, Oxyry, pyminifier, Online-Obfuskator-Familie, Xindex, Patchwork, pyc-zipper | Statische Quellcode-/Loader-Wiederherstellung über den AST-Evaluator; einzelne Schichten und Reste werden berichtet |
| Jawbreaker, ObfuXtreme | Wiederherstellung des im Artefakt vorhandenen Körpers; zur Laufzeit abgerufene Payloads bleiben abwesend |
| python-obfuscator (PyPI), pyobfus, Pypacker | Teilweise Wrapper-Ablösung und Klassifizierung |

PyArmor kann die passende Runtime-Datei neben dem Wrapper benötigen. Sein dedizierter BCC-Pfad erfordert `--allow-bcc` und gibt statische native Lifts plus Python-Skelette für modellierte Körper aus; pfadbewusste automatische Wiederherstellung kann dieselben BCC-Artefakte veröffentlichen. Nur der PyArmor v6/v7 Dynamic-Hook führt Beispielcode aus, hinter `--allow-dynamic` mit einem Watchdog. `--allow-bcc` erlaubt nur In-Tree-Statikanalyse und führt weder das Beispiel aus noch ruft es externe Tools auf. [Versions- und Modusdetails](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/python.md#pyarmor).

</details>

<details>
<summary><strong>JavaScript, WebAssembly und paketierte Webanwendungen</strong></summary>

| Familie oder Format | Unterstützung und Route |
|---|---|
| obfuscator.io / javascript-obfuscator, JS-Confuser | Wiederherstellung unterstützter String-Arrays, Dispatcher-/Control-Flow-Transformationen, opaker Prädikate und Loader-Schichten; direkte Befehle und `js.deob` |
| Jscrambler, js-obfuscator (jsobfu) | Teilweise Template- und statische Transformations-Wiederherstellung |
| JSFuck, aaencode, jjencode, JSFiretruck, Dean Edwards Packer | Statische Dekodierung über dedizierte Operationen und erkannte Kettenrouten |
| JSDefender, Arxan / Digital.ai | Erkennung und teilweise Ablösung statischer Transformationen; geschützte kommerzielle JS-Operationen erfordern die Autorisierungsoption des Befehls |
| PACE | Nur-Erkennung |
| webpack 4, webpack 5, Vite, Rollup, Rolldown, esbuild, Turbopack, Bun, Parcel, Browserify, SystemJS; AMD-Module | Direktes Unbundling/Modul-Wiederherstellung. Die Kette dispatcht webpack und Vite; Katalogmarker für andere Bundler machen diese Routen nicht von selbst automatisch |
| bytenode `.jsc`, Node SEA, nexe, nw.js | Inspektion/Carving paketierter V8-Daten; Node SEA und bytenode haben explizite Kettenzweige |
| Electron ASAR, Tauri v1/v2, Wails v2 | Wiederherstellung eingebetteter Frontend-Bäume; Electron/Tauri verwenden `webview.carve`, Wails verwendet `go.classify`; direktes `webview` behandelt alle drei |
| Bun standalone, Deno eszip v2 bis v2.3 / `deno compile` | Wiederherstellung eingebetteter Modulgraphen über die jeweiligen Container-Reader; eszip bietet auch einen direkten Rust-Reader |
| Wobfuscator, Jscrambler WASM, wasm-mixer / Wasmixer | Teilweise Umkehrung unterstützter Transformationen über `wasm.deob`; werkzeugförmige Fixtures bewerten die Transformationen, ohne dass committete Ausgaben von diesen Obfuskatoren selbst vorliegen |
| Tigress → Emscripten, wasm-name-obfuscator | Erkennen und klassifizieren; der Tigress-Helper liegt außerhalb des `wasm deob`-Ausführungspfads, und zerstörte Originalnamen bleiben nicht verfügbar |

[JavaScript-Routen](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/javascript.md) · [Wasm-Grenzen](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/wasm.md) · [Eingebettete Frontend-Layouts](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/webview.md).

</details>

<details>
<summary><strong>Native Packer, Protectors und Obfuskierungsfamilien</strong></summary>

| Familie | Unterstützung und Route |
|---|---|
| Donut, sRDI | Wiederherstellung des eingebetteten Moduls aus unterstützten Shellcode-Loader-Layouts |
| UPX, ASPack, Petite, MPRESS, FSG, PECompact, Yoda's Crypter, NSPack, MEW, kkrunchy | Implementierte Unpack-Routinen, erreichbar über `native unpack` und die Packer-Kette; Treue variiert je nach Familie und Exemplar |
| ASProtect, Morphine, nPack, NeoLite, PolyCryptor, Warzone Crypter | `StubEvalPending`: Emulator-Verhalten hat spezifikationsbasierte Stub-Evidenz; echte herstellergespackte Wiederherstellung ist unvalidiert und es wird kein Unpack-Dispatch beworben |
| Yoda's Protector, VMProtect, Themida / WinLicense | CLI und Auto nur-Erkennung. Separate Rust-Helper bieten original-unterstütztes Carving oder Wiederherstellung geschützter Abschnitte; sie belegen keine Devirtualisierung des gesamten Programms |
| PE-Protector, PELock, Enigma Protector, Armadillo, Obsidium, WinLicense | Nur-Erkennung |
| DotNetPatcher, NetCryptor | Delegieren die Managed-Schicht an den .NET-Durchlauf |
| OLLVM-Flattening, Bogus Control Flow, Instruktionssubstitution; Tigress CFF | Unterstützte statische Deobfuskierungs-Transformationen und Berichte über die nativen Rust-APIs; anwendbare Analyse erscheint in nativen Wiederherstellungsberichten |
| Alcatraz, Emotet CFF, Mirai, Dridex, Trickbot, obfus.h, Cryptify (rust-obfuscator), guardian-rs, obfusheader.h, obfuscxx, Amice | Benannte native Obfuskierungssignaturen; einzelne String-/Control-Flow-Helper haben eine engere Wiederherstellung als die vollständig erkannte Familie |

Die native Analyse stellt außerdem Rust/C++-Symbole, C++-RTTI und Vtables, Delphi/C++Builder-Objektmodelle und DFM-Ressourcen, DWARF/PDB/STABS-Informationen, Importe, Aufrufgraphen, Krypto-Signaturen und FLIRT-Matches wieder her. Die Instruktionsanalyse umfasst x86, ARM, RISC-V, MIPS, PowerPC, SPARC, eBPF und AVR; die Quellcodeausgabe ist die kleinere, oben aufgeführte Architekturmenge. [Native Analyse](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native.md) · [Unpacking- und Byte-Wiederherstellungs-Evidenz](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/native-unpack.md) · [Deobfuskierung](https://github.com/1-3-7/disrobe/blob/main/docs/src/anti-analysis.md).

</details>

<details>
<summary><strong>JVM-, Android-, .NET- und Mobile-Paketfamilien</strong></summary>

| Familie | Unterstützung und Voraussetzung |
|---|---|
| Zelix KlassMaster, Allatori, Stringer, DashO | String-Wiederherstellung für unterstützte Muster, gefolgt von Classfile-Dekompilierung |
| DexGuard | Erkennung, strukturelle Ablösung und In-Class-String-Decrypt-Emulation für unterstützte geschlüsselte Konstanten |
| BlackObfuscator | DEX-Dispatcher-Erkennung und Blockreihenfolge-Annotation |
| ProGuard / R8 | Mapping-Replay auf ein Namenswiederherstellungs-Sidecar; Originalnamen erfordern `mapping.txt` |
| yGuard, SkidSuite2, JBCO | Nur-Erkennung |
| Promon SHIELD, Guardsquare DexGuard RASP, Guardsquare ThreatCast, Appdome, OneSpan, Arxan / Digital.ai, Zimperium zShield, Licel DexProtector | Android-RASP-Identifizierung und strukturelle Berichte |
| ConfuserEx2 | Konstanten-Wiederherstellung aus echten Samples und Control-Flow-Deflattening; verschlüsselte Ressourcen können eine Runtime-Key-Grenze behalten |
| Eazfuscator.NET | Modellbewertete String-Entschlüsselung und VM-Lifting; das VM-Fixture stammt von einem In-Repository-Virtualizer, nicht vom ausgelieferten Produkt |
| KoiVM (ConfuserEx VM) | Virtualisierte Körper, geliftet zu CIL auf committeter Real-Tool-Ausgabe |
| ConfuserEx, Dotfuscator, Dotfuscator CE, SmartAssembly, Babel, DeepSea, Spices.Net, Goliath, Skater, .NET Reactor, CryptoObfuscator, ArmDot, Agile.NET, Obfuscar, DotNetPatcher, NetCryptor, BitMono | Erkennung und familienspezifische Teilwiederherstellung: Namen, Strings, Ressourcen oder Methodenstrukturen. BitMono befindet sich im Protector-Detektor jenseits des 22-Einträge-.NET-Kettenkatalogs |
| Themida (.NET-Wrapper), ILProtector, MaxToCode | Nur-Erkennung für native-loader-geschlüsselte Körper |
| React Native APK, React Native IPA; React Native Hermes-Bytecode | Extraktion von JS/Hermes-Payloads und Weiterleitung unterstützten Bytecodes in den Hermes-Lift |
| Flutter Dart Kernel; Flutter AOT-Snapshot (`libapp.so`) | Kernel-Quellcode-Tabellen-Wiederherstellung; AOT-Deklarationen, Metadaten und ARM64-Disassembly. Snapshot-Version und verfügbare Namen schränken die Wiederherstellung ein |
| Xamarin / .NET MAUI APK, Apache Cordova APK, Capacitor APK, NativeScript APK | Runtime-Identifizierung und unterstützte Paket-/Member-Extraktion |
| Android APK (`classes.dex`), Android App Bundle (AAB / APKM / XAPK), IPA | Paketinspektion und Kind-Extraktion; nachgelagerte Wiederherstellung hängt von der eingebetteten Runtime ab |

Die .NET-String-Decoder für SmartAssembly, Spices.Net, Skater, .NET Reactor, Eazfuscator.NET und CryptoObfuscator werden an modellierten Algorithmen bewertet, nicht an committeten herstellergenerierten Assemblies. ConfuserEx2, Obfuscar und BitMono haben echte geschützte Assembly-Evidenz. [JVM/Android](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/jvm-android.md) · [.NET](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/dotnet.md) · [Mobile](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/mobile.md).

</details>

<details>
<summary><strong>Lua-, PHP-, Shell-, Ruby-, BEAM-, Swift-, Go- und ActionScript-Familien</strong></summary>

| Familie | Unterstützung und Voraussetzung |
|---|---|
| IronBrew2 | VM-Wiederherstellung, ausführungsdifferenziell geprüft an echter 2.7.0 Standard- und MAX-Ausgabe |
| Prometheus | Teilweise Wiederherstellung, einschließlich unterstützter gestapelter `Vmify`-Dispatch-Bäume |
| MoonSec V1, MoonSec V2, MoonSec V3, AztupBrew, DarkSec, Boronide, PSU, WeAreDevs LuaU, luaobfuscator.com, SLua (Unity Lua 5.3), Hercules | Teilweise Lua-Wiederherstellung; MoonSec-förmige VM-Evidenz verwendet einen synthetischen Bootstrap |
| Luraph | Nur-Erkennung |
| Luau-Bytecode, Garry's Mod Lua (GLua) | Dialekterkennung; Luau-Lifting und teilweise GLua-Wiederherstellung |
| ionCube, SourceGuardian, Zend Guard | Erkennung kommerzieller PHP-Hüllen; im Loader befindliche Schlüssel bleiben eine Grenze. Legacy-Static-Key-Fälle können teilweise `op_array`-Struktur liefern |
| FOPO, Better PHP Obfuscator | Statische PHP-Eval-Ketten-Ablösung, mit Literal-Key-Anforderungen für verschlüsselte Schichten |
| Invoke-Obfuscation (Token), Invoke-Obfuscation (AST), Invoke-Obfuscation (String), Invoke-Obfuscation (Encoding), Invoke-Obfuscation (Compress); Invoke-Stealth, PowerHell, Chameleon, psobf | Statische PowerShell-Wiederherstellung |
| Invoke-Obfuscation (Launcher), ISESteroids | Teilweise PowerShell-Wiederherstellung |
| Bashfuscator (Token), Bashfuscator (String), Bashfuscator (Obfuscate), Bashfuscator (Compress); Bash-Indirektion (IFS/eval); node-bash-obfuscate (Chunk-Table-Eval) | Statische Bash-Wiederherstellung |
| Batch-Obfuskierung (`%random%`), Batch-Obfuskierung (Set-Indirektion); VBA-Makro (P-Code-Dekompilierung + Stomping) | Batch-Ablösung und VBA-Quellcode-/P-Code-Wiederherstellung |
| YARV InstructionSequence (kompiliertes `.rb`), mruby RITE-Bytecode | Ruby-Quellcode-Wiederherstellung |
| OCRA selbstextrahierendes Executable, RubyScript2Exe-Paket | Teilweise Freezer-Klassifizierung/-Wiederherstellung |
| JRuby kompilierte Klasse, TruffleRuby Native Image | Nur-Erkennung über den Ruby-Katalog |
| BEAM-Datei (Erlang / Elixir kompiliertes Modul), EZ-Archiv (ZIP-umhüllte `.beam`-Module) | Modul-Extraktion, Quellcode-/Debug-Chunk-Wiederherstellung oder Core-Erlang-Fallback |
| garble | Go-Metadaten und unterstützte Literale; Original-Namens-Hashing kann ohne den fehlenden Seed nicht umgekehrt werden |
| Mach-O Swift / Objective-C-Metadaten, Mach-O Fat (Universal)-Binärdatei, dyld Shared Cache | Runtime-Metadaten, Slice- und Dylib-Wiederherstellung |
| SwiftShield | Mapping-Parser; das Mapping muss bereitgestellt werden, um Originalnamen wiederherzustellen |
| SWF (Flash, FWS/CWS/ZWS) DoABC, roher ABC-Bytecode | Disassembly und Methodenkörper-Pseudocode |
| secureSWF, DoSWF, Kindi, Irrfuscator, swfLock | Nur-Erkennung |

[Familienkatalog](https://github.com/1-3-7/disrobe/blob/main/docs/src/catalog.md) · [Lua](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/lua.md) · [PHP](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/php.md) · [Shell](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/shell.md) · [Ruby](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/ruby.md) · [BEAM](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/beam.md) · [Go](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/go.md) · [Swift](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/swift.md) · [AS3](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/as3.md).

</details>

<details>
<summary><strong>Alle 103 registrierten Container-Formate</strong></summary>

| Kategorie | Formate |
|---|---|
| Allgemeine Archive | ZIP, TAR, tar.gz, tar.bz2, tar.xz, tar.zst, 7z, RAR, CAB, CPIO, ar, ARJ, ARC, LZH, LZO/lzop, uzip, Xamarin xalz, PAR2, StuffIt |
| Anwendungs- und Spracharchive | JAR, WAR, APK, XPI, WHL, EGG, CRX, NUPKG, VSIX, PYZ, Electron ASAR |
| Installer und Anwendungsimages | PKG, DMG, DEB, RPM, AppImage, Snap, Flatpak, MSIX/APPX, MSI, NSIS, Squirrel, Inno Setup, InstallShield, Enigma Virtual Box |
| Dateisysteme und Dateisystem-Streams | SquashFS, cramfs, ext4, romfs, MinixFS, Android sparse, btrfs-send, EROFS, JFFS2, NTFS, UBI/UBIFS, YAFFS2, QNX, partclone |
| Datenträger- und Deployment-Images | ISO, OCI, Docker-Image, VHD, VHDX, WIM, GPT, MBR, FAT12/16/32 |
| Komprimierungs-Streams | XZ, gzip, bzip2, zstd, LZMA, lzip, LZ4, zlib, Unix compress (`.Z`) |
| Eingebettete Anwendungsdaten | Bun standalone, UnityFS, .NET Single-File-Bundle |
| Firmware | D-Link SHRS, ENCRPTED_IMG, alpha v1, alpha v2, DEAFBEAD, FPKG; EnGenius; Autel ECC; QNAP; Netgear CHK, TRX v1, TRX v2; Xiaomi HDR1, HDR2; Tesla SBFH; HP BDL, IPKG; Moxa FRM; INSTAR BNEG, HD; Airoha; UEFI Firmware Volume |
| Speicher- und verschlüsselte Volumes | Windows Minidump, LUKS1 |

Das Verzeichnis deklariert die Erkennung für jeden Eintrag. Von diesen Routen verwenden 102 den generischen Extraktor; <!-- roster-breadth:containers-exercised -->42<!-- /roster-breadth --> haben committete Eingaben, die Member-Bytes erreichen, DMG hat Nur-Erkennungs-Evidenz, und 59 haben keine committete Eingabe. LUKS1 wird separat gegen Klartext bewertet und erfordert einen `aes-cbc-plain` Raw-Volume-Key zur Entschlüsselung; ohne einen solchen meldet es die Schlüsselgrenze. Einzelne Komprimierungsmethoden, verschlüsselte Member, Split-Volumes und Dateisystemfunktionen haben engere Grenzen. StuffIt 5 gibt derzeit den Archiv-Blob durch Extraktion zurück, obwohl seine Fork-Decoder existieren. Airoha OTP-AES-Inhalte werden wörtlich gecarvt.

Zusätzliche Rust-Reader stellen Deno eszip, Apple APFS/HFS+, ELF angehängte Overlays und Blazor WebCIL-Strukturen bereit; sie sind keine zusätzlichen Einträge in der 103-Format-Zählung. [Extraktionsrouten, Methodenversionen und Grenzen](https://github.com/1-3-7/disrobe/blob/main/docs/src/languages/containers.md) · [Container-Registry](https://github.com/1-3-7/disrobe/blob/main/crates/disrobe-binfmt/src/container.rs).

</details>

## Automatische Wiederherstellung`auto` wählt einen Pass aus der kompilierten Registry, führt ihn aus und identifiziert anschließend dessen Ausgabe und extrahierte Kinder neu. Es stoppt am Konfidenzschwellenwert, bei einem wiederholten Content-Hash oder am Tiefenlimit (standardmäßig acht). Berichte und Quelldateien, die als terminal markiert sind, bleiben Ausgaben und werden nicht erneut in die Erkennung eingespeist. Die folgende Tabelle erfasst jeden Pass, der von einem vollständigen Build registriert wird; ein schlanker Build kann feature-gesteuerte Zeilen auslassen.

| Eingabeebene | Registrierte Pass-IDs | Automatische Ausgabe | Dedizierte Steuerungen oder Voraussetzung |
|---|---|---|---|
| Archive, Installer, Firmware, Volumes | `binfmt.container` | Extrahierte Kinder, rekursiv weiterverfolgt in Sprach-/Native-Passes | `extract` für Member-Berichte und die explizite LUKS1-Raw-Key-Option |
| PyInstaller | `pyinstaller.extract` | Eingebettete Member und `.pyc`-Kinder | `pyinstaller extract` für archivspezifische Optionen |
| Python-Freezer | `pyfreeze.extract`, `nuitka.extract` | Extrahierte Payloads oder unterstützte kompilierte Paketstruktur | Experimentelles `pyfreeze`; der Nuitka-Flavor bestimmt, was erhalten bleibt |
| Geschütztes Python | `pyarmor.unpack`, `sourcedefender.decrypt` | Verfügbarer Klartext/Bytecode, Metadaten oder Key-Boundary-Berichte | Passendes Runtime-/Key-Material; dedizierter PyArmor-Modus und Striktheitsoptionen |
| Python-Quellcode und Bytecode | `py.deob`, `py.decompile`, `py.disasm` | Gepellter Quellcode, dekompilierter Quellcode oder Instruktions-Trace | `py decompile --emit source,disasm,ast`; ein passender Interpreter ist für Rekompilierungsprüfungen erforderlich |
| Pickle | `pickle.classify` | Symbolische Analyse und Klassifizierung | `pickle` für die einzelnen Inspektions-/Rekonstruktionsoperationen |
| JavaScript | `js.deob` | Unterstützte Deobfuskierung, Webpack/Vite-Modulwiederherstellung, Node-SEA-/bytenode-Handling | `js unbundle` legt die breitere Bundler-Menge offen; Source Maps und Umbenennungsoptionen sind direkte Steuerungen |
| WebAssembly | `wasm.deob` | Wiederhergestelltes oder geliftetes WAT plus Detection-, Summary- und Recovery-Sidecars | `wasm decompile --target` wählt Rust, TypeScript, C, WAT oder JSON |
| Electron / Tauri | `webview.carve` | Eingebettete Frontend-Member | `webview` unterstützt auch Wails; die automatische Wails-Wiederherstellung verwendet `go.classify` |
| PHP / Phar | `php.peel` | Gepellter Quellcode, `op_array`-Ausgabe, Archiv-Kinder, Residual-/Key-Berichte | Keys und IVs müssen für verschlüsselte Schichten statisch verfügbar sein |
| JVM / DEX | `jvm.classify` | Java-Quellcode, Protector- und Recovery-Manifeste, Klassen-/Archiv-Kinder | `jvm`/`apk` für Mapping, Signaturen und optionale externe Backends |
| .NET | `dotnet.classify` | C# und Analyse, wiederhergestellte Konstanten/Ressourcen/CIL oder Native-AOT-Metadaten | `dotnet` für andere Quellformate und installierte Rendering-Backends |
| Mobile-Pakete / Bytecode | `mobile.classify` | Runtime-/Member-Extraktion, Hermes-Lift, Dart-Kernel-Quellcode oder AOT-Berichte | `hermes`, `flutter`, `mobile` für formatspezifische Steuerungen |
| Lua | `lua.deob` | Wiederhergestelltes Lua und Dialekt-/Fidelity-Sidecars | `lua` für explizite Family- und Ausgabesteuerungen |
| Shell / Office / PDF | `shell.deob` | Gepellte Skripte, Makro-Quellcode/p-Code, XLM- und Dokumentberichte | `shell` für dokumentenspezifische Operationen |
| Ruby | `ruby.classify` | Analyse plus wiederhergestellter YARV-/mruby-Quellcode, sofern verfügbar | `ruby` für flavorspezifische Berichte; JRuby-/TruffleRuby-Klassifizierung ist keine Ruby-Quellcode-Wiederherstellung |
| BEAM / EZ | `beam.classify` | Erlang/Elixir/Core Erlang, Disassembly, Archiv-Kinder | Erhaltene Debug-Chunks bestimmen die Quellcode-Treue |
| SWF / ABC | `as3.classify` | ABC-Struktur, Instruktionsauflistungen, AS3-Pseudocode | Benannte kommerzielle Obfuskatoren bleiben nur erkennbar |
| Go | `go.classify` | Symbole, Typen, Garble-Analyse und eingebettete Dateisystem-Member | `go` für DWARF, BuildInfo und andere dedizierte Berichte |
| Swift / Objective-C | `swift-objc.classify` | Metadaten, Universal-Slices und Shared-Cache-Dylibs | Benachbarte Sub-Cache-/Symboldateien können erforderlich sein; direkte `swift`/`macho`-Steuerungen |
| Native Packer | `native.packer-unpack` | Verfügbares entpacktes Image oder eingebettetes Modul, Symbole, Signaturen, Recovery-Berichte | Nur implementierte Packer-Dispatches entpacken; kommerzielle VM-Stufen können bei der Erkennung stoppen |
| Native Images | `native.image-classify` | Identität, Symbole, Signaturen, Findings und ein begrenzter x86-64/AArch64-Pseudo-Quellcode-Bericht | `native decompile` wählt einen vollständigen Quellcode-Ausgabebefehl; ARM32-/MIPS32-Quellcodepfade sind direkt |
| Windows / OS/2 NE | `native.ne-structure` | Segmente, Einträge, Importe und Ressourcen | Strukturelle Wiederherstellung statt Quellcode-Dekompilierung |
| Perl / R / Tcl / Haxe / WSH | `scriptlang.classify` | Sprachberichte, wiederhergestellte Strukturen und unterstützte Kind-Artefakte | Format-spezifische Bibliotheks-APIs legen feinere Operationen offen |
| Nim / Zig / Crystal / D | `nativelang.classify` | Sprach-Fingerprints, Symbole und partielle native Struktur | Die Klassifizierung erfordert ausreichend erhaltene Sprachmarker |

Beispielsweise kann eine erkannte PyInstaller-Anwendung durch `pyinstaller.extract` → `pyarmor.unpack` → `py.decompile` fortschreiten; ein APK durch Member-Extraktion → DEX → Java; und ein gepacktes natives Image durch Entpacken → Sprach- oder Image-Analyse. Jeder Pfeil hängt davon ab, was diese jeweilige Schicht tatsächlich liefert.```sh
disrobe passes
disrobe catalog python --json
disrobe auto input-directory/ --out recovered/ --batch-max-depth 6 --capture-stages
disrobe chain module.pyc --chain py.decompile --out python-source/

scan, frisk, taint, vulnmatch, explizite Quell-Ziel-Auswahl, Mapping-Replay und optionale Aufrufe externer Backends bleiben dedizierte Operationen. Pass-Registry · Chain-Auswahl und Ausgabe-Layout.

Das Ergebnis analysieren und exportieren

Die Capability-Map deckt Befehlsgruppen und Integrationen ab. Ihr maschinenlesbares Inventar verknüpft Quelle, Tests, Dokumentation, Support- Status und Demos. Die CLI-Referenz deckt verschachtelte Befehle ab; globale Flags decken gemeinsame Optionen ab. Verwende disrobe <command> --help für die Schnittstelle deines installierten Builds.

Projekt- und Service-Befehle sind dort ebenfalls indexiert: serve, plugin, init, config, catalog, passes, doctor, install, install-deps, self-update, completions, man, explain und bug-report. Verwende doctor, um je nach Plattform 46 bis 51 externe Tools zu prüfen und fehlende optionale Backends zu identifizieren.

Dieselbe Recovery in deinem Workflow verwenden

Tools vergleichen

Die Tabelle ordnet jede Recovery-Aufgabe den Befehlen von Disrobe und verwandten Tools zu. Installierte Decompiler und exportierte Artefakte liefern die unten gezeigten Integrationspunkte.

Das Vergleichsinventar benennt die ausstehenden Vergleiche mit gemeinsamer Eingabe. Backend-Optionen sind in der Installation und den oben verlinkten Sprach-Anleitungen dokumentiert.

Gemessene Tool-Vergleiche

Die Messungen verwenden die unten verlinkten gepinnten Eingaben, Tool-Versionen und Bewertungsregeln. DEX- und JAR-Zählungen messen die Kompilierung der von jedem Tool ausgegebenen Regionen. Diese Populationen unterscheiden sich, daher ordnen ihre Zählungen nicht die Recovery-Qualität ein. Der APK-Secret-Recall verwendet dieselbe Ground Truth aus acht Tokens.

Eingaben, rohe Tool-Ergebnisse und Reproduktionsbefehle.

Ghidra die wiederhergestellte Executable geben

Dieselbe Ghidra-12.1.2-Analyse sieht anderen Code, nachdem Disrobe eine gepackte Executable als neu aufgebaute PE exportiert. Diese lokalen Snapshots verwenden echte benigne gepackte Fixtures und verzeichnen sowohl Zunahmen als auch Abnahmen. Die Spalten Funktionen/Instruktionen/Strings stammen aus dem Analyse-Snapshot mit neun Eingaben; abgeschlossene C-Renderings stammen aus dem separaten Decompiler-Snapshot mit sechs Eingaben. Ein abgeschlossenes Rendering ist nichtleere Ausgabe, keine Quellcode-Korrektheitsnote.

Die kkrunchy-Zählungen nehmen ab. Mehr entdeckte Funktionen sind nicht zwangsläufig mehr korrekte Funktionen, und diese Analysezählungen ersetzen keinen Byte-Vergleich. Lies den Analyse-Snapshot, den Decompiler-Snapshot und die separaten nativen Byte-Recovery-Messungen.

Die Evidenz untersuchen

Der Evidenz-Index verknüpft Recovery-Messungen mit ihren Fixtures, Vergleichsmethoden, Befehlen und Ergebnissen.

Ergebnisse unterscheiden Byte-Recovery, Compiler-Akzeptanz und Verhaltensprüfungen. Compiler-Akzeptanz und Coverage-Zählungen sind keine Äquivalenznoten.

JADX/CFR-Scoring-Details und Reproduktionsbefehle

Recovery geprüft gegen unabhängige Referenzen

Diese Prüfungen messen Disrobe gegen ein Originalartefakt, einen Compiler, einen Interpreter oder ein gelabeltes Korpus. Sie unterscheiden sich vom Vergleich zweier Decompiler. Jedes verlinkte Ergebnis dokumentiert die Eingabepopulation, Voraussetzungen und den Reproduktionsbefehl.

Coverage-Zählungen und ihre kleineren Korrektheitspopulationen| Oberfläche | Anzahl | Was sie belegt | |---|---|---| | PyArmor | 72 / 72 benannte v8/v9-Default-Trial-Wrapper | Statische Entschlüsselung und vollständiges Root-`CodeObject`-Parsing, ohne externen Korrektheitsvergleich | | Android, drei echte APKs | 83662 / 83943 Methoden herabgesetzt, lokal | Selbstberichtete Body-Abdeckung. Die separate Verifier-Population umfasst 2988 von 2998 Bodies, die in isolierten Trägern präsentiert werden | | Wasm-Instruktionsinventar | 1034 von 1034 Instruktionen | Externer `wasm-tools`-Nenner und re-assemblierbares WAT; der Lowering-Zähler ist selbstgezählt | | Luau-Instruktionstabelle | 86 von 88 Einträgen geliftet | Disrobes deklarierte Tabelle; `BREAK` und `NEWCLASSMEMBER` bleiben dekodiert, aber unaufgelöst | | Swift-Symbole | Committete Symbolpopulation rendert zu gepinnten Strings | Regressionskonsistenz, ohne erforderlichen externen Demangler-Vergleich | | OLLVM-Flattening | 9 erreichte Zustände von 9 abgeleiteten Zuständen | Dispatcher-Zustandsabdeckung über zwei committete Funktionen; beide Zähler werden in-process abgeleitet | | Gemischte boolesche Arithmetik | 316 Einträge; Referenzlauf beantwortete 247 und verweigerte 69; externer Solver bewies 236 Antworten und widerlegte keine | Budgetierte Wiederherstellung und zurückgehaltene Originale; unbeantwortete oder unbewiesene Einträge werden nicht zu solver-bewiesenen Ergebnissen | | Container | 42 generische Routen schreiben Member-Bytes | Ausgeübte Breite innerhalb der 103 erkannten Formate; LUKS1 hat seinen eigenen Klartextvergleich |

Vollständige Evidenzdatensätze beschreiben jede Population und Bewertungsregel.

Diagrammbeschriftungen verwenden strong für eine unabhängige Korrektheitsreferenz, recompile-only für Compiler-Akzeptanz und coverage-self-reported für Disrobes eigene Abdeckungszähler. Die Vergleichsmethode und die Population definieren den Geltungsbereich jedes Ergebnisses.

Durchsuchen Sie die Ergebnisse, Tool-Vergleiche und Reproduktionsvoraussetzungen für einzelne Messungen.

Grenzen kennen

  • Kompilierte Ausgabe verliert Informationen. Ursprüngliche Kommentare, Formatierungen, Namen und einige Typinformationen können fehlen.
  • Familien-Erkennung ist weiter gefasst als Wiederherstellung. Ein Katalogtreffer oder erfolgreicher Parser kann mit teilweiser Quellcode-Ausgabe koexistieren. Lesen Sie die Familien-Stufe und das tatsächliche Ergebnis.
  • Native Wiederherstellung hängt von Architektur und Ausgabesprache ab. Der Native-Leitfaden listet unterstützte Pfade und deren Tests auf.
  • Die Erkennung kommerzieller VM-Protectoren ist kein allgemeines Versprechen zur Quellcode-Wiederherstellung. Interne Helfer und Artefakte geschützter Abschnitte begründen keinen vollständigen CLI-Wiederherstellungspfad. Siehe Native-Unpacking.
  • Fehlende Schlüssel bleiben fehlend. Laufzeit-abgeleitete Schlüssel und fehlende Name-Hashing-Seeds können nicht aus einem nicht unterstützten Artefakt abgeleitet werden. Die Leitfäden zu Python, PHP und Containern nennen formatspezifische Grenzen.
  • Externe Backends haben ihre eigenen Anforderungen. Einige Befehle können installierte Tools über --backend auto auswählen. Prüfen Sie die Hilfe des Befehls und den Installationsleitfaden, bevor Sie ein Backend wählen.
  • Die Analyse verwendet standardmäßig statische Wiederherstellung. Das macht nicht vertrauenswürdige Eingaben nicht harmlos. Ressourcenlimits, explizit ausgewählte dynamische Operationen und Grenzen externer Prozesse sind in Forensik-Sicherheit beschrieben.

Die Pipeline verstehen

Disrobes Zwischendarstellungen, von Bytes über Programmstruktur bis zum Quellcode

Der Chain-Runner verbindet zweckgebundene Pässe über gemeinsame Artefakte und Zwischendarstellungen. Ein Pass trägt die Ausgabe bei, die er rechtfertigen kann; nachgelagerte Konsumenten behalten die Provenienz bei und melden nicht unterstützte Grenzen. Erkunden Sie die Architektur, das Pass-Modell, die IR-Leiter und den Chain-Runner.

Dokumentation und Mitwirkung

Beginnen Sie mit der Dokumentation, dem Quickstart und dem Ergebnisleitfaden. Verwenden Sie disrobe explain <code>, um eine Diagnose nachzuschlagen. Für Änderungen am Projekt lesen Sie den Mitwirkungsleitfaden sowie die Tests und Evidenz des jeweiligen Features.

Das Bedrohungsmodell beschreibt Vertrauensgrenzen und Eingabebehandlung. Melden Sie Sicherheitsbedenken über SECURITY.md. LEGAL.md beschreibt die rechtlichen Erwägungen des Projekts; die Berechtigung zur Analyse eines Artefakts hängt von Ihren Umständen ab.

Lizenz

License: Disrobe Source-Available

Jede Version von Disrobe ist proprietär und quelloffen verfügbar unter der Disrobe Source-Available License, Version 1.1, die die Elastic License 2.0 und Version 1.0 für alle Versionen ersetzt und alle früheren Gewährungen widerruft, wie in der Relizenzierungsmitteilung dargelegt.

Persönliche Hobbyprojekte, persönliches Lernen und unbezahlte unabhängige Sicherheitsforschung durch Einzelpersonen, gemeinnützige Bildung und Forschung sowie bona fide Journalismus sind kostenlos, wie in der Lizenz definiert.

Jede Nutzung durch oder für ein Unternehmen erfordert eine kostenpflichtige Lizenz. Siehe kommerzielle Lizenzierung.

Erforderliche Nennung: Diese Arbeit verwendete Disrobe, erstellt von 1-3-7: https://github.com/1-3-7/disrobe

Forks, die keine Beitrags-Forks sind, Reposting, Rebranding, Weiterverkauf, Hosting und konkurrierende Entwicklung sind untersagt. Die Software wird wie besehen und auf eigenes Risiko des Nutzers bereitgestellt.

Siehe Attribution, Beitragsbedingungen, Zusammenfassung und Hinweise zu Drittanbietern.

Copyright (c) 2025-2026 1-3-7. Alle Rechte vorbehalten.

Frühere Entwicklungs-Commits wurden im Rahmen der Dokumentations- und visuellen Überarbeitung zu einer einzigen Baseline zusammengeführt.

Tool herunterladen
AufgabeBefehleAusgabe oder nächster Schritt
Indikatoren, Secrets und statische Befunde findenscan, frisk, strings, ioc, indicators, behaviorBefunde und Offsets
Funktionen, Flows und Verhalten untersuchenquery, capabilities, taint, vulnmatchAbfragbarer IR, ATT&CK/MBC-Mappings und Source-to-Sink-Berichte
Annotationen und strukturierte Artefakte behaltenannot, rename, envelope, verify, yaraArtefakt-Envelopes und Analysten-Zustand
Provenienz verfolgen und Läufe vergleichenchain, context, status, report, diff, guard, semdiffBerichte, Hashes und Recovery-Unterschiede
Öffentliche Netzwerkdaten sammelnprowlExplizite Netzwerkerfassung, getrennt von Offline-Recovery
OberflächeEinstiegspunktAnleitung
RustGemeinsame Core-Typen und einzelne Pass-CratesLibrary-APIs
PythonTypisierte Bindings über import disrobePython-Bindings
HTTP, gRPC und LSPdisrobe serveService
Model Context Protocoldisrobe-mcp oder disrobe serve --mcpMCP-Integration
Editoren und Analyse-ToolsVS Code, IDA Pro, Ghidra, Binary NinjaEditor-Integrationen
GitHub ActionsRepository-Action und SARIF-AusgabeGitHub Action
Lokale Commit-PrüfungenHook-ID disrobepre-commit
BrowserClientseitiger Wasm-WorkerPlayground
Projektkontext für Coding-Toolsdisrobe init --ideMetadata-Sidecar
Recovery-AufgabeGenannte ToolsDisrobes WegWie man sie auswählt oder kombiniert
Python-Bytecode zu Quellcodepycdc, PyLingual, uncompyle6, decompyle3In-Process-Decompiler für CPython 1.0 bis 3.15, Recovery verschachtelter Code-Objekte, Quellcode-/Disassembly-/AST-AusgabeRekonstruierten Quellcode, Disassembly und AST aus dem integrierten Python-Decompiler untersuchen
Frozen-Python-Extraktionpyinstxtractor-ng, pydecipherPyInstaller-, Nuitka- und Freezer-Extraktion gefolgt von Bytecode-Recoveryauto kann vom extrahierten Member durch einen Protector bis in den Python-Decompiler fortfahren
PyArmorPyarmor-Static-Unpack-1shotStatische Wrapper-/Runtime-Recovery, Modus-Berichte, optionales statisches BCC-LiftingDie passende Runtime bereitstellen, um Wrapper-Daten wiederherzustellen und modusspezifische Ergebnisse zu untersuchen
Pickle-Inspektionfickling, Python pickletoolsInstruktions-Trace, symbolische Reducer, Klassifikation und WertrekonstruktionOhne Ausführung von Reducern untersuchen; pickletools bewertet die Inspektion, und CPython prüft die Rekonstruktion an 470 generierten Fixtures
JavaScript-Deobfuskierungwebcrack, synchrony, REstringerobfuscator.io, JS-Confuser, unterstützte Jscrambler-Muster, esoterische Decoder, Konstanten-/Control-Flow-Recoveryjs deob für explizite Optionen verwenden oder auto, wenn JS in einem Paket steckt
JS-Unbundling und Source Mapswakaru, webcrack, sourcemapperModulextraktion, Source-Map-Handling, scope-bewusstes Renaming, paketierte V8-Inspektionjs unbundle bietet mehr Bundler-Routen als der automatische Chain-Dispatch
WebAssemblyWABT wasm-decompile, BinaryenWAT und C/Rust/TypeScript-Pseudocode, JSON-Zusammenfassungen, unterstützte ObfuskierungsumkehrEin ausgewähltes Quellziel untersuchen; wasmtime-Ausführung prüft das wiederhergestellte Verhalten unabhängig
JVM-QuellcodeCFR, Vineflower, Procyon, FernflowerNative Classfile-Recovery plus Protector-/String-Handlingjvm decompile schreibt Disrobe-Artefakte neben die Ausgabe eines installierten Backends; CFR hat unten ein gemessenes Compile-Yield-Ergebnis
Android-Pakete und DEXJADX, apktool, androguard, dex2jarIn-Process-Dalvik-Recovery, APK-Metadaten/-Signaturen, Runtime-Extraktion, Java-AusgabeDEX/APK-Dekompilierung nutzt standardmäßig den nativen Pfad; ein Android-Backend wird explizit ausgewählt. JADX hat unten einen gemessenen Abschnitt
.NET-AssembliesILSpy, dnSpy, dnSpyEx, de4dotCIL-Recovery plus protectorspezifische Konstanten, Ressourcen, VM-Bodies und Native-AOT-Metadatendotnet decompile schreibt Disrobe-CIL-Ausgabe neben einen installierten Renderer; --backend auto wählt ILSpy, dnSpyEx, dnSpy oder de4dot
Native-DekompilierungGhidra, IDA, Binary NinjaIn-Process-x86-64-C/Rust und AArch64/ARM32/MIPS32-Pseudo-C; Berichte zu wiederhergestellten Symbolen/TypenGhidra headless mit --backend ghidra auswählen oder Editor-Integrationen und exportierte Symbole in einer interaktiven Analysesitzung verwenden
Gepackte native Executablesupx -d, unipacker, Detect It EasyImplementierte Unpacker und begrenzte Stub-Emulation, neu aufgebaute PE-Images, eingebettete Loader-ModuleWiederhergestellte PE-Images in Ghidra/IDA exportieren. Die Ghidra-Messungen unten vergleichen die gepackten und die neu aufgebauten Eingaben
Native-ObfuskierungGhidra, IDA, Binary Ninja und Deobfuskierungs-SkripteOLLVM/Tigress-Transformationen, MBA-Vereinfachung, Stack-Strings, native Metadaten und Recovery-BerichteDie relevante native Operation/API auswählen; ein VM-Protector-Fingerprint allein impliziert keine Body-Recovery
Go-Metadaten und garbleGoReSym, redress, gorepclntab, Modul-/Typ-Metadaten, eingebettete Dateien und wiederherstellbare garble-Literalego berichtet Namen/Typen; native decompile behandelt den Maschinencode-Quellpfad separat
Swift / Objective-Cswift-demangle, class-dump, jtool2Runtime-Klassen-/Protokoll-/Selektor-Daten, Symbol-Rendering, Fat Slices, Shared-Cache-DylibsÜberlebende Mappings und Sub-Cache-Dateien bereitstellen; durch Renaming gelöschte Originalnamen benötigen eine externe Map
Lua-Bytecode und VMsunluac, luadec, LuaDec51Lua/LuaJIT/Luau-Quellcode plus unterstützte Obfuskator- und Custom-VM-RecoveryIronBrew2 hat Execution-Differential-Evidenz mit echten Tools; gewöhnliche .luac-Recovery und VM-Recovery sind unterschiedliche Operationen
Ruby-BytecodeMRI-DisassemblyYARV- und mruby-Quellcode, Opcode-Listings, Freezer-/AOT-KlassifikationMRI-Rekompilierung bewertet den Opcode-Namen-Recall; dieses Maß belegt keine Ausführungsäquivalenz
PHP-Schichtenphp-malware-finderEval-Chain- und Literal-Key-Loop-/Cipher-Peeling, Phar-Extraktion, Encoder-Envelope-BerichteStatische Schichten und verfügbares Schlüsselmaterial verwenden; mit Native-Loader verschlüsselte kommerzielle Payloads bleiben versiegelt
PowerShell, Bash, VBAPowerDecode, FLARE-Tools, olevbaShell-Deobfuskierung, VBA-Quellcode/p-Code und Stomping, XLM-Formeln, PDF-Aktionenshell platziert Script-Recovery und Dokumentbefunde neben den Rest der Artefaktanalyse
BEAM / ActionScriptErlang beam_disasm, RABCDAsmBEAM-Debug-Source-/Core-Erlang-Recovery und ABC-Method-Body-PseudocodeDebug-Chunks erhalten, wenn verfügbar; gestripptes BEAM hat eine separate Real-Erlang-Ausführungsprüfung
Hermes / React Nativehermes-dec, hbctool, DroidSawRuntime-Extraktion, HBC-Struktur, unterstütztes Pseudo-JavaScript-LiftingHBC-Parsing deckt v60 bis v96 ab; Source-Lifting hat eine engere gemessene Grenze. Hermes-zu-DEX-Bridge-Taint ist nicht implementiert
Flutter / Dart AOTreFlutter, Darter, blutterKernel-Source-Tabellen, AOT-Deklarationsgraph, ARM64-Bodies, Strings, Rename-Map-ParsingKernel-Source und AOT-Metadaten sind unterschiedliche Recovery-Ebenen; Snapshot-Versionen beschränken das AOT-Parsing
Container und Firmwarebinwalk, unblob, 7-ZipRegistrierte Format-Extraktion, rekursives Child-Routing, Firmware-Dekodierung/-Carving, Refusal-Berichte pro MemberExtrahierte Member direkt in Sprach-Passes einspeisen; Member-Bytes vergleichen, statt eine erkannte Magic als erfolgreiche Extraktion zu behandeln
Secrets und IndikatorenAPKLeaks, TruffleHog, Gitleaks, LinkFinderBefunde im wiederhergestellten Baum/APK, Token-Offsets, statische Strings, Secret- und IOC-BerichteDas APK oder den wiederhergestellten Baum scannen; APKLeaks gegen dieselben unten platzierten Secrets vergleichen
Format-, Packer-, Compiler-IdentifikationDetect It Easy, TrID, PEiD, binwalkMulti-Signal-Identifikation, Symbole, Signaturen und Routing-Hinweiseidentify/detect verwenden, um einen Recovery-Pfad auszuwählen, dann dessen tatsächliche Ausgabe untersuchen
Capabilities und Taintcapa, Ghidra-Skripte, JoernATT&CK/MBC-Befunde mit Offsets, normalisierte IR-Abfragen, Source-to-Sink-Flow-BerichteCapability-Matching und Source-to-Sink-Analyse auf wiederhergestellten Artefakten ausführen; der Taint-Bericht enthält seine Juliet-Testpopulation
Tool und EingabeDisrobe-ErgebnisErgebnis des genannten ToolsWas die Messung prüft
JADX 1.5.5 · Android DEX157 / 228 ausgegebene Regionen kompilieren sauber281 / 303 ausgegebene Regionen kompilieren sauberCommittete EdgeCases-DEX; echtes javac, vollständige Quellcode-Kompilierung, dann begrenzte Isolation von Regionen, die die Zuordnung blockieren; unterschiedliche ausgegebene Populationen
CFR 0.152 · JVM-Classfile181 / 181 ausgegebene Regionen kompilieren sauber152 / 166 ausgegebene Regionen kompilieren sauberCommittetes EdgeCases-JAR; dasselbe Compiler-/Scorer-Verfahren; unterschiedliche ausgegebene Populationen
APKLeaks 2.6.3 · APK mit platzierten Secrets8 / 8 platzierte Secrets5 / 8 platzierte SecretsExakter Token-Recall auf demselben APK; Disrobe findet außerdem den platzierten AWS Secret Access Key, die Basic-Credential und das JWT
Gepackte EingabeGhidra-Funktionen, gepackt → neu aufgebautInstruktionen, gepackt → neu aufgebautStrings, gepackt → neu aufgebautAbgeschlossene C-Renderings, gepackt → neu aufgebaut
UPX · Rust hello4 → 287225 → 19.06023 → 1794 → 287
ASPack · Clockres5 → 24358 → 10.54448 → 1165 → 210
ASPack · AccessEnum5 → 10173 → 5.78162 → 1955 → 101
PECompact · Clockres2 → 306148 → 14.60327 → 271 → 267
PECompact · AccessEnum2 → 186155 → 9.27852 → 532 → 186
MEW · Clockres4 → 333125 → 20.9903 → 358Nicht gemessen
MEW · AccessEnum4 → 152125 → 9.5923 → 802Nicht gemessen
MEW · Autologon4 → 295125 → 19.5953 → 406Nicht gemessen
kkrunchy classic · NASM hello4 → 1149 → 103 → 44 → 1
EingabeVon Disrobe ausgegebene RegionenVom genannten Tool ausgegebene RegionenPopulationsgrenzeReproduzieren
Android DEX157 / 228 ausgegebene Regionen kompilieren sauberJADX 1.5.5: 281 / 303 ausgegebene Regionen kompilieren sauberkein toolübergreifendes Ranking: jedes Tool hat seine eigene Population ausgegebener Regionencargo run --locked -p disrobe-bench-head-to-head -- --check --only apk-jadx-cfr
JVM-Classfile181 / 181 ausgegebene Regionen kompilieren sauberCFR 0.152: 152 / 166 ausgegebene Regionen kompilieren sauberkein toolübergreifendes Ranking: jedes Tool hat seine eigene Population ausgegebener Regionencargo run --locked -p disrobe-bench-head-to-head -- --check --only apk-jadx-cfr
RecoveryAufgezeichnetes ErgebnisReferenz und Grenze
Python 3.14.5, gepinnte Module6077 von 6286 Code-ObjektenCPython-Rekompilierung mit normalisiertem Opcode-Struktur-Vergleich; Sprungziele, die meisten Operanden und zusätzliche wiederhergestellte Objekte werden nicht bewertet. Ergebnis
Python 3.14.5, feste Core-Population17396 von 18276 Code-Objekten, lokale MessungDerselbe normalisierte Vergleich über 574 Module; dies ist kein Ergebnis semantischer Äquivalenz. Ergebnis
Legacy-Python 1.0 bis 3.7mindestens 150 von 191 Fixtures (Regressions-Untergrenze)Rekompilierung mit zeitgenössischem Interpreter oder strukturelle Tokens gegen den Originalquellcode. Ergebnis
Pickle-Klassifikation102 / 102 Klassifikations-Fixturespickletools-Semantik. Ergebnis
Pickle-Rekonstruktion470 / 470 rekonstruierte Fixtures bestehen Re-Execution-GleichheitsprüfungenCPython-Re-Execution. Ergebnis
JVM-Quellcode-Kompilierung131 von 131 Methoden kompilierenEchtes javac. Ergebnis
JVM-Verhalten117 / 131 Methoden stimmen mit beobachteter Ausführung übereinEchte JVM; acht Methoden weichen ab und sechs werden nicht isoliert angesteuert. Ergebnis
Android DEX118 / 118 dem Verifier vorgelegte KlassenJVM -Xverify:all; 37 von 155 Klassen werden beim Linken übersprungen und nicht bewertet. Ergebnis
.NET C#18 / 35 vollständige EdgeCases-Typen kompilieren eigenständig neuEchtes Roslyn csc; legaler Quellcode belegt kein äquivalentes Verhalten. Ergebnis
.NET VM-BodiesEazfuscator-Modell: 67 / 67 Instruktionen; echtes KoiVM: 6 / 6 Bodies geliftetGetrennte Original-/Clean-Build-Referenzen; EazVM verwendet einen im Repository enthaltenen Virtualizer, KoiVM verwendet die Ausgabe echter Tools. Evidenz
WebAssembly57 / 57 geeignete Funktionenwasmtime vergleicht Rückgaben, Traps und die ersten 4.096 Bytes des linearen Speichers auf den Testeingaben. Ergebnis
BEAM ohne Debug-Chunks19 / 19 ModuleErlang/OTP 27.3.4-Rekompilierung, Export-Vergleich und test/0-Ausgabe/Exit-Status. Ergebnis
Lua IronBrew2Echte 2.7.0-Standard- und MAX-Ausgabe wird zu übereinstimmender Ausführung wiederhergestelltEchter Lua-Interpreter gegen Originalprogramme; eine VM-Familie. Ergebnis
Ruby YARVGreeter 100%; Megafile 98.67% Opcode-Namen-RecallMRI-Rekompilierung; Multiset-Recall ignoriert Reihenfolge, Operanden, Sprungziele und zusätzliche Instruktionen. Ergebnis
Go gestrippte Typnamen838 von 838 NamenEchte go1.26.3-Metadaten aus dem Vergleichs-Build. Ergebnis
Hermes HBC v968 von 8 Funktionen, null Fallback-OperationenEchtes hermesc-Sample mit Originalquellcode und Funktionsnamen. Ergebnis
Native gepackte BytesUPX, FSG, NSPack, Petite, MPRESS .text byte-identisch bei benannten committeten Paaren; Yoda's Crypter-Ressourcen byte-identischRVA-ausgerichtete Originalbytes; Whole-Image- und Ressourcen-Residuen werden weiterhin separat berichtet. Tabelle pro Eingabe
Platzierte Indikatoren6 / 6 IOC-Kategorien vertretenCommittete Endpunkte, Manifest-Befunde, URLs, IPv4, E-Mail und .onion-Ground-Truth. Ergebnis
MCP-Callgraph5 / 5 direkte Kanten, alle korrekt identifiziertGestripptes ELF verglichen mit seinem unterschiedlichen ungestrippten Toolchain-Zwilling. Präzision, Recall
Native Taint93 / 190 gelabelte Flows erkannt; null False Positives, lokale MessungNIST Juliet CWE-78 char/system-Slice, gcc 16.2.0 -O2; sieben deklarierte Flow-Kategorien haben keine Fälle in diesem Slice. Ergebnis