Un désobfuscateur simple mais puissant pour supprimer les techniques d'obscurcissement JavaScript courantes. Ouvrez un problème si vous pensez qu'il y a une fonctionnalité qui devrait être implémentée.
Version en ligne sur deobfuscate.io
Installer via npm install js-deobfuscator
Vous recherchez un désobfuscateur spécifique à Obfuscator.io/javascript-obfuscator ? Essayez ce dépôt
Si vous souhaitez discuter/en savoir plus sur l'obfuscation et la désobfuscation JavaScript, vous pouvez rejoindre le serveur Discord.
Décompresse les tableaux contenant des littéraux (chaînes, nombres, etc.) et remplace toutes les références à ceux-ci
Supprime les fonctions proxy simples (appels à une autre fonction), les fonctions proxy de tableau et les fonctions proxy arithmétiques (expressions binaires)
Simplifie les expressions arithmétiques
Simplifie la concaténation des chaînes
Renomme les identifiants hexadécimaux illisibles (par exemple _0xca830a)
Convertit les calculs en expressions membres statiques et embellit le code
Voir en bas pour un exemple plus compliqué avec des fonctionnalités enchaînées.
Avant
const a = ['x20', 'x57x6fx72x6cx64', 'x48x65x6cx6cx6f'];console.log(a[2] + a[0] + une[1]);
Après
console.log('Bonjour' + ' ' + 'Monde');
Avant
function a(b, c) { return someFunction(b, c);}const résultat = a(5, 6);
Après
résultat const = uneFonction(5, 6);
Avant
function a(b, c) { return c + 2 * b;}const résultat = a(5, 6);
Après
résultat const = 6 + 2 * 5 ;
Avant
fonction a(b, c) { retour c + 2 * b;}fonction b(c, d) { retour a(c, d);}fonction c(d, e) { retour b(d, e);} résultat const = c(5, 6);
Après
résultat const = 6 + 2 * 5 ;
Avant
soit total = 0x2 * 0x109e + -0xc * -0x16a + -0x3234;pour (soit i = 0x1196 + 0x97b * 0x3 + -0x2e07; i < -0x95 * -0x38 + -0x1a75 + -0x619; i++) { total += je;}
Après
soit total = 0;pour (soit i = 0; i < 10; i++) { total += i;}
Avant
console.log('Il' + 'll' + 'o' + 'Wo' + 'r' + 'ld');
Après
console.log('Bonjour tout le monde');
Toutes ces fonctionnalités peuvent être chaînées pour simplifier le code.
Avant
const ar = [ 'x48x65x6cx6cx6f', 0x95, 'x20', 0x1a75, 'x57x6fx72x6cx64', -0x53, 'x6cx6fx67' ];const a = fonction (b, c) { retour c + 2 * b; }, b = fonction (c, d) { return a(c, d); }, c = fonction (d, e) { return b(d, e); };const message = ar[0] + ar[2] + ar[4];const résultat = c(ar[1] * 0x38 + ar[3] + 0x619, 0x12 * ar[5] + 0x1a13 + 0x621) ;console[ar[6]](message + ' ' + résultat);
Après
const message = 'Hello World';const result = 40106;console.log(message + ' ' + result);
interface Config { arrays : { unpackArrays : boolean ; RemoveArrays : booléen ; } ; proxyFunctions : { replaceProxyFunctions : booléen ; RemoveProxyFunctions : booléen ; } ; expressions : { simplifierExpressions : booléenne ; RemoveDeadBranches : booléen ; } ; divers : { embellir : booléen ; simplifierPropriétés : booléen ; renameHexIdentifiers : booléen ; };}
Soit installez le module localement via npm install js-deobfuscator
et importez comme d'habitude, soit installez globalement npm install -g js-deobfuscator
et utilisez la CLI js-deobfuscator
:
> js-deobfuscator -h Utilisation : exécuter [options] Désobscurcir un fichier javascript Possibilités : -i, --input [input_file] Le fichier d'entrée à désobscurcir (par défaut : "input/source.js") -o, --output [output_file] Le fichier de sortie désobfusqué (par défaut : "output/output.js") -f, --force S'il faut écraser ou non le fichier de sortie -h, --help afficher l'aide pour la commande>
Vous pouvez également utiliser la version en ligne sur deobfuscate.io