
Kodieren. Dekodieren. Identifizieren. Intelligentes Dekodieren für beliebige Daten.
Kodieren. Dekodieren. Identifizieren. Intelligentes Dekodieren für beliebige Daten.
Vorabversion, und bereits nutzbar. Die Workbench läuft, die Erkennungs-Engine entpackt geschachtelte Nutzlasten, und der Analysebericht ist vollständig.
Noch ausstehend: das Barrierefreiheits-Audit und der Internationalisierungs-Durchgang. Ein Disassembler und eine OCR-Engine sind bewusst nicht im Umfang enthalten — das sind eigene Projekte, keine Operationen.
Das übliche Modell für ein solches Werkzeug setzt voraus, dass Sie bereits wissen, was Ihre Daten sind: Sie wählen die Operationen, verketten sie, iterieren. Das ist in Ordnung, wenn Sie das Format auf Anhieb erkennen, und nutzlos, wenn nicht — was die meiste Zeit der Fall ist, wenn ein Analyst etwas Neues vor sich hat.
DecodeBox beginnt am anderen Ende. Sie fügen etwas ein, und es findet heraus, was es vor sich hat: jede Schicht entpackt, jeder Indikator extrahiert, jeder Sicherheitsbefund erklärt, mit den Belegen für jede Aussage sichtbar gemacht statt nur behauptet.
Alles läuft in Ihrem Browser. Keine Eingabe, kein Rezept und keine Datei verlässt jemals Ihren Rechner — es gibt keinen Server, an den sie gesendet werden könnte.
Eine echte Nutzlast aus der Testsuite: Base64 über Base64 über gzip über JSON, mit einem PowerShell-Loader in einem Feld.
Findings 4 Indicators 7 Layers 8 257 ms
CRITICAL Cloud or service credential CWE-798
Input → Base64 → Base64 → gzip
AKIAIOSFODNN7EXAMPLE
CRITICAL PowerShell download-and-execute CWE-94
Input → Base64 → Base64 → gzip → JSON → Base64 → UTF-16LE
IEX (New-Object Net.WebClient).DownloadString
Der zweite Fund liegt sechs Ebenen tief, und der letzte Sprung kam aus einem Base64-Blob in einem JSON-Feld. Nichts, was den ursprünglichen Blob grept, sieht ihn, und nichts, was eine einzelne lineare Kette entpackt, erreicht ihn.
Base64 → Base64 → MD5), an einem nicht dekodierbaren Rest wie einer JWT-Signatur oder an einem ehrlichen Eingeständnis, dass ein Limit erreicht wurde und darunter noch mehr liegen könnte.Wenn nichts Deklariertes die Eingabe erklärt, probiert DecodeBox jeden Einzelbyte-XOR-Schlüssel und jede Rotation aus und bewertet jedes Ergebnis auf Lesbarkeit — mit einer Konfidenz, die klar sagt, dass es eine Suche und kein Treffer war.
DecodeBox verarbeitet konstruktionsbedingt nicht vertrauenswürdige, absichtlich fehlerhafte Eingaben.
connect-src 'none' und script-src 'self' plus einem Hash für das eine Inline-Skript. Schriften werden gebündelt statt abgerufen, und der Build schlägt fehl, wenn jemals eine CDN-Referenz in der Ausgabe auftaucht.eval, new Function und jeder Pfad, der Eingaben als HTML rendert, sind durch Lint-Regeln verboten, nicht durch Konvention.style-src erlaubt zwar 'unsafe-inline', weil React Inline-style-Attribute schreibt; script-src, wo das eigentliche Risiko liegt, bleibt strikt. Um eine Schwachstelle zu melden, siehe SECURITY.md — bitte eröffne für Sicherheitsmeldungen kein öffentliches Issue.
DecodeBox/
├── .github/workflows/ # CI, CodeQL, SBOM, markdown quality, Pages deployment
├── public/ # Bundled fonts, favicon, CNAME
├── src/
│ ├── engine/ # The analysis engine — the only half that knows about data
│ │ ├── index.ts # THE SEAM — the only module the interface imports from
│ │ ├── operations/ # One self-contained module per transformation
│ │ ├── detection/ # Entropy, charset, magic bytes, structural validity
│ │ ├── analysis/ # Recursive exploration, indicators, security findings
│ │ ├── ctf/ # Flag search, cipher key recovery, ranked hints
│ │ ├── core/ # Recipe executor, byte handling, ciphers, codecs
│ │ └── worker/ # The engine off the main thread, past a size threshold
│ ├── components/ # The interface: workspace, report, CTF mode
│ ├── store/ # One zustand store
│ ├── hooks/ # Interaction logic shared across components
│ ├── lib/ # Share links, saved recipes, recipe text format
│ ├── i18n/ # Every user-facing string
│ └── styles/ # Design tokens and themes
├── SECURITY.md
└── LICENSE
Die Schnittstelle erreicht die Engine über eine schmale Fassade, die sieben Funktionen bereitstellt —
listOperations, bake, detect, autoDecode, identify, analyse und hints. Beide Hälften
können unabhängig voneinander entwickelt, getestet und ersetzt werden; der Workspace wurde einst von Grund auf neu aufgebaut,
ohne dass sich an der Engine eine Zeile änderte. Das Hinzufügen einer Operation sollte niemals erfordern, die UI anzufassen.