
Encoder. Décoder. Identifier. Décodage intelligent pour toutes les données.
Encoder. Décoder. Identifier. Décodage intelligent pour toutes les données.
Pré-version, et déjà utilisable. L'atelier fonctionne, le moteur de détection déroule les charges utiles superposées, et le rapport d'analyse est complet.
Reste à faire : l'audit d'accessibilité et la passe d'internationalisation. Un désassembleur et un moteur d'OCR sont délibérément hors périmètre — ce sont des projets à part entière, pas des opérations.
Le modèle habituel pour un outil de ce type suppose que vous savez déjà ce que sont vos données : vous choisissez les opérations, vous les enchaînez, vous itérez. C'est parfait quand vous reconnaissez le format au premier coup d'œil, et inutile quand ce n'est pas le cas — ce qui est le cas la plupart du temps lorsqu'un analyste examine quelque chose de nouveau.
DecodeBox part de l'autre bout. Vous collez, et il détermine ce qu'il a entre les mains : chaque couche déroulée, chaque indicateur extrait, chaque constat de sécurité expliqué, avec la preuve de chaque affirmation visible plutôt qu'assénée.
Tout s'exécute dans votre navigateur. Aucune entrée, aucune recette et aucun fichier ne quitte jamais votre machine — il n'y a aucun serveur où l'envoyer.
Une charge utile réelle issue de la suite de tests : Base64 sur Base64 sur gzip sur JSON, avec un chargeur PowerShell dans un champ.
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
Le second résultat se trouve six couches plus bas, et le dernier saut provenait d'un blob Base64 à l'intérieur d'un champ JSON. Rien de ce qui fait un grep sur le blob d'origine ne le voit, et rien de ce qui déroule une chaîne linéaire unique ne l'atteint.
Base64 → Base64 → MD5), sur un reste qui ne peut pas être décodé comme une signature JWT, ou sur l'aveu honnête qu'une limite a été atteinte et qu'il pourrait y avoir davantage en dessous.Lorsque rien de déclaré n'explique l'entrée, DecodeBox essaie toutes les clés XOR mono-octet et toutes les rotations et évalue chaque résultat selon sa lisibilité — avec un niveau de confiance qui indique clairement qu'il s'agissait d'une recherche plutôt que d'une correspondance.
DecodeBox traite par conception des entrées non fiables et délibérément malformées.
connect-src 'none' et script-src 'self' plus un hash pour l'unique script inline. Les polices sont intégrées plutôt que récupérées, et la build échoue si une référence à un CDN apparaît un jour dans la sortie.eval, new Function et tout chemin qui rend l'entrée sous forme de HTML sont interdits par les règles de lint, et non par convention.style-src autorise bien 'unsafe-inline', car React écrit des attributs style inline ; script-src, où réside le vrai risque, reste strict. Pour signaler une vulnérabilité, voir SECURITY.md — veuillez ne pas ouvrir d'issue publique pour les rapports de sécurité.
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