Packeur JavaScript/Décompresseur
Détectez et décompressez le code JavaScript compressé, y compris le format Dean Edwards Packer. Identifie automatiquement la signature du packer, extrait la charge utile codée et le dictionnaire de mots clés, et reconstruit le code source original lisible. Idéal pour la recherche sur la sécurité, l'ingénierie inverse et la compréhension des scripts tiers compressés : tous les traitements sont locaux et privés.
Detect and unpack packed JavaScript code, including Dean Edwards Packer format and similar compressors. Paste packed JavaScript code to automatically identify the packer, extract the unpacking algorithm, and reveal the original readable source code. All processing runs locally in your browser - no signup required.
6 1(3,4){2 0=0;2(5 7=0;7<3.8;7++){2 9=3[7];0+=9.8*9.a}b 0}| # | Encoded | Keyword |
|---|---|---|
| 0 | 0 | function |
| 1 | 1 | items |
| 2 | 2 | var |
| 3 | 3 | |
| 4 | 4 | |
| 5 | 5 | for |
| 6 | 6 | |
| 7 | 7 | calculateTotal |
| 8 | 8 | i |
| 9 | 9 | length |
| 10 | a | price |
Pourquoi utiliser notre packer/décompresseur JavaScript ?
- Détection automatique du packer : détecte instantanément le format Dean Edwards Packer et les compresseurs JavaScript similaires. L'outil recherche la signature de la fonction caractéristique (p, a, c, k, e, d), identifie la base d'encodage, extrait les dictionnaires de mots clés et révèle le code source original lisible, le tout en un seul clic.
- Extraction complète des composants : affichez chaque composant extrait du packer : la charge utile encodée, le numéro de base d'encodage, le nombre de mots-clés et le dictionnaire de mots-clés complet avec les mappages encodés vers l'original. Le tableau des mots-clés montre l'identifiant codé en base N et son mot-clé décodé correspondant pour chaque entrée.
- Copier et télécharger le code décompressé : exportez facilement le code décompressé avec les boutons Copier dans le Presse-papiers ou Télécharger sous forme de fichier .js. La comparaison côte à côte montre l'entrée compressée et la sortie décompressée avec des modifications de taille en octets afin que vous puissiez voir exactement combien d'espace l'emballage a économisé.
- Traitement sécurisé et privé du navigateur : tout le déballage s'exécute entièrement dans votre navigateur à l'aide de JavaScript. Le code compressé, les composants extraits et la sortie décompressée ne quittent jamais votre appareil. Pas d'inscription, pas de téléchargement de données, pas de suivi - confidentialité totale pour la recherche de sécurité et l'analyse des logiciels malveillants.
Cas d'utilisation courants du packer/décompresseur JavaScript
- Analyse des logiciels malveillants et des scripts de sécurité : les chercheurs en sécurité et les analystes SOC utilisent le décompresseur de packer pour analyser les charges utiles JavaScript potentiellement malveillantes. Le code compressé est couramment utilisé dans les téléchargements inopinés, les pages de phishing et les droppers de logiciels malveillants. Le déballage révèle la fonctionnalité malveillante réelle cachée derrière la couche de compression.
- Widgets minifiés par ingénierie inverse : lors de l'analyse de widgets JavaScript tiers ou de scripts de suivi qui utilisent le packaging Dean Edwards, le décompresseur révèle les noms de variables d'origine et la structure du code. Cela permet de comprendre quelles données le script collecte, quelles API il appelle et comment il se comporte sur votre site Web.
- Pratique pédagogique de désobfuscation : les étudiants qui apprennent l'obscurcissement et la désobfuscation JavaScript utilisent le packer unpacker pour comprendre le fonctionnement de l'empaquetage de Dean Edwards. La vue des composants extraits montre exactement comment la base d'encodage, le dictionnaire de mots-clés et l'algorithme de remplacement des limites de mots reconstruisent le code d'origine.
- Résolution des défis du CTF : les participants à Capture The Flag (CTF) sont confrontés à des défis d'exploitation Web et d'ingénierie inverse remplis de JavaScript. Le décompresseur du packer supprime rapidement la couche d'emballage, révélant le code sous-jacent qui contient des indicateurs, des charges utiles ou des indices de vulnérabilité.
- Récupération de code hérité : lors de la maintenance d'anciennes applications Web qui utilisaient des compresseurs JavaScript avant que la minification moderne ne devienne standard, le décompresseur permet de récupérer le code source lisible à partir de scripts compressés dans lesquels les fichiers d'origine non obscurcis ont été perdus.
- Recherche de vulnérabilités et bug bounty : les chasseurs de bug bounty analysant les applications cibles rencontrent souvent du JavaScript compressé en production. Le déballage révèle la logique réelle de l'application, les points de terminaison de l'API, les flux d'authentification et les vulnérabilités de sécurité potentielles cachées derrière la compression.
Qu’est-ce que l’empaquetage JavaScript ?
Le packaging JavaScript est une technique de compression de code qui remplace les noms de variables, les noms de fonctions et les mots-clés significatifs par de courtes références codées. Le format le plus courant est le Dean Edwards Packer, qui utilise un schéma de codage en base N pour représenter les identifiants de manière compacte. La sortie compressée est enveloppée dans une fonction auto-extractible qui, une fois exécutée, reconstruit le code d'origine en remplaçant les espaces réservés codés par les mots-clés réels d'un dictionnaire. Cette technique a été largement utilisée dans les années 2000-2010 avant que les outils de minification modernes comme UglifyJS et Terser ne deviennent la norme.
Comment fonctionne notre emballeur-déballeur
- Scan & Detect : l'outil analyse votre code JavaScript à la recherche de la signature caractéristique de Dean Edwards Packer : un eval() encapsulant une fonction avec des paramètres (p, a, c, k, e, d). Cette signature identifie de manière unique le format du packer parmi les autres méthodes de compression.
- Extraire les composants : à l'aide de l'extraction d'expressions régulières, l'outil extrait les cinq composants clés du packer : la chaîne de charge utile encodée (p), le numéro de base d'encodage (a, généralement 62), le nombre de mots-clés (c), la liste de mots-clés compressée (k) et le caractère de séparation utilisé pour séparer les mots-clés. Ces composants sont affichés dans la section des composants extraits.
- Reconstruire le code original : le décompresseur implémente l'algorithme de décodage de Dean Edwards : il convertit chaque index numérique en sa forme codée en base N à l'aide des chiffres 0 à 9 et des lettres a à z, puis remplace chaque occurrence de limite de mot de la forme codée dans la charge utile par le mot-clé correspondant du dictionnaire. Le résultat est le code source JavaScript original lisible.
Ce qui est déballé
- Références de mots-clés : les espaces réservés numériques dans la charge utile compressée (représentés sous forme de courtes chaînes codées telles que 0, 1, a, b, etc.) sont remplacés par les mots-clés et identifiants JavaScript réels du tableau de dictionnaire.
- Noms de variables et de fonctions : les noms significatifs qui ont été remplacés par des références codées lors de l'emballage sont restaurés dans leur forme originale, révélant l'objectif réel de chaque variable et fonction.
- Littéraux de chaîne : les valeurs de chaîne qui ont été extraites et stockées dans le dictionnaire de mots clés sont replacées dans le code à leur position d'origine, rendant le code à nouveau lisible.
- Structure du code : la structure globale du code (boucles, conditions, appels de fonction, modèles d'accès aux objets) est entièrement préservée lors du déballage. Seuls les identifiants codés sont reconvertis dans leur forme originale.
Confidentialité et limites
Notre JavaScript Packer/Compressor Unpacker traite tout localement dans votre navigateur. Votre code compressé, vos composants extraits et votre sortie décompressée ne quittent jamais votre appareil : pas de téléchargement, pas de traitement par le serveur, pas de stockage de données. Cependant, cet outil gère spécifiquement le format Dean Edwards Packer et les compresseurs structurellement similaires. Il peut ne pas fonctionner avec les implémentations de packers personnalisés, le code compressé multicouche ou les outils d'obscurcissement modernes comme Jscrambler ou Obfuscator.io. Pour le code compressé multicouche, vous devrez peut-être exécuter le décompresseur plusieurs fois, en transmettant la sortie de chaque passage en entrée jusqu'à ce qu'aucune signature du packer ne soit détectée. Vérifiez toujours l’exactitude du code décompressé avant de vous y fier.
Foire aux questions
Un packer/décompresseur JavaScript inverse la compression du code comme le Dean Edwards Packer. Il détecte le code compressé par sa signature, extrait les composants codés et reconstruit le code source original lisible en remplaçant les espaces réservés codés par des mots-clés réels du dictionnaire de compression.
Le Dean Edwards Packer encapsule le code dans une fonction auto-extractible avec la fonction de signature (p, a, c, k, e, d). Les paramètres représentent : p (charge utile codée avec des espaces réservés), a (base de codage, généralement 62), c (nombre de mots-clés), k (liste de mots-clés séparés par des virgules), e (fonction de codage) et d (dictionnaire facultatif).
Notre déballeur gère le format standard Dean Edwards Packer et les compresseurs structurellement similaires. Il peut ne pas fonctionner avec des implémentations de packer personnalisées, du code compressé multicouche ou des outils d'obscurcissement modernes utilisant des techniques entièrement différentes.
Le dictionnaire de mots-clés mappe les indices numériques aux mots-clés et identifiants JavaScript réels. Chaque index est codé dans une chaîne de base N et chaque occurrence sous forme de mot entier dans la charge utile est remplacée par le mot-clé correspondant. La vue des composants extraits affiche la table de mappage complète.
Absolument. Tout le déballage s'effectue entièrement dans votre navigateur à l'aide de JavaScript. Votre code compressé, vos composants extraits et votre sortie décompressée ne quittent jamais votre appareil. Aucune inscription requise, confidentialité totale.
Pour le code compressé multicouche, vous devrez peut-être exécuter le décompresseur plusieurs fois. Collez à nouveau la sortie décompressée dans le panneau de saisie et cliquez à nouveau sur Décompresser. Chaque passage supprime une couche d'emballage jusqu'à ce que le code soit entièrement lisible.
La base de codage (généralement 62) détermine la manière dont les indices de mots-clés sont convertis en identifiants de chaîne. La base 62 utilise les chiffres 0 à 9 et les lettres a-z et A-Z. Une base plus élevée produit des identifiants codés plus courts, ce qui donne lieu à une sortie plus compacte.
Oui - notre JavaScript Packer/Compressor Unpacker est 100 % gratuit, sans inscription requise, sans niveau premium, sans limite d'utilisation, sans restriction de taille de fichier et sans publicité. Utilisez-le un nombre illimité de fois pour n'importe quel but.