Premiers pas
Obfuscator.io transforme votre code source lisible en une version protégée, difficile à comprendre et à rétroconcevoir. C'est l'outil idéal pour protéger vos algorithmes propriétaires, votre logique de licence et le code critique de votre activité.
Bienvenue sur Obfuscator.io
Ce guide vous accompagne pour obfusquer votre premier fichier, choisir un préréglage et comprendre le panneau d'options. Pour aller plus loin, consultez les sections Obfuscation VM, Obfuscation de base et Bonnes pratiques.
Démarrage rapide
1. Collez votre code
Saisissez votre code JavaScript dans l'éditeur de gauche. Vous pouvez coller le code directement ou utiliser l'envoi de fichiers pour un traitement par lot.
2. Choisissez un préréglage
Sélectionnez un préréglage dans la liste déroulante du panneau Options. Commencez par
Low Obfuscationpour des modifications minimes ouMedium Obfuscationpour une protection équilibrée. Les préréglages VM offrent la sécurité la plus élevée.3. Cliquez sur « Obfuscate »
Appuyez sur le bouton Obfuscate pour transformer votre code. Le résultat protégé apparaît dans le panneau de droite.
4. Copiez ou téléchargez
Utilisez le bouton Copy ou Download pour récupérer votre code obfusqué. La sortie est prête à être utilisée en production.
Compatibilité du code Important
L'obfuscation (VM comme non-VM) transforme votre code d'une manière qui affecte certains comportements du runtime JavaScript. Votre code ne doit pas dépendre des fonctionnalités suivantes :
function.toString()/class.toString()L'obfuscation modifie complètement la représentation du code source. Tout code qui analyse ou compare le source d'une fonction cessera de fonctionner.
function.name/class.nameLes noms de fonctions et de classes sont remplacés par des identifiants aléatoires. Le code qui s'appuie sur
.namepour la journalisation, la sérialisation ou la réflexion obtiendra des noms obfusqués.
// Before obfuscation
function calculatePrice() { return 100; }
console.log(calculatePrice.name); // "calculatePrice"
console.log(calculatePrice.toString()); // "function calculatePrice() { return 100; }"
// After obfuscation
console.log(calculatePrice.name); // "_0x1a2b3c" (random)
console.log(calculatePrice.toString()); // Completely transformed code
Options de base
Avant d'obfusquer, configurez ces options de base en fonction de votre environnement cible.
Target target
Indique l'environnement d'exécution du code obfusqué :
browser(par défaut) - environnement de page web standard. Le code produit est identique à celui denode, mais certaines options propres au navigateur ne peuvent pas être utilisées avec la ciblenode.browser-no-eval- identique àbrowser, mais la sortie n'utilise paseval(). À utiliser lorsque la page cible applique une Content Security Policy qui interditeval/unsafe-eval.node- environnement Node.js. Les options propres au navigateur sont désactivées (elles requièrentwindow/documentet seraient sans effet ou lèveraient une erreur sous Node). Certaines défenses devmSelfDefendingqui reposent sur des API exclusivement navigateur - détection de navigateur headless, restauration d'un realm propre via iframe, contrôles anti-inspecteur/DOM - ne sont pas générées pour cette cible.service-worker- contexte Service Worker. Pas dewindow, pas dedocument, un globalselfdifférent.userscript- bac à sable d'un gestionnaire de userscripts (Tampermonkey, par exemple). Les défensesvmSelfDefendingsont ajustées en conséquence. Nécessite l'obfuscateur v6.9.0+.bytenode- pour du code destiné à être compilé en.jscavec bytenode. Nécessite l'obfuscateur v6.13.0+.
Strict Mode strictMode
Détermine la façon dont l'obfuscateur traite le mode strict de JavaScript :
Auto(par défaut) - détection automatique du mode strict à partir du code. L'obfuscateur analyse votre code à la recherche de directives"use strict"Enable- force le traitement en mode strict de tout le code, que"use strict"soit présent ou nonDisable- seules les directives"use strict"explicitement présentes dans le code source sont traitées comme du mode strict
Comprendre les préréglages
Les préréglages sont des combinaisons d'options préconfigurées. Ils se répartissent en deux groupes distincts :
Préréglages VM Pro (virtualisation en bytecode)
| Préréglage | Sécurité | Performance | Fonctionnalités |
|---|---|---|---|
VM Low | Bonne | ~10x | VM de base, répartition indirecte |
VM Medium | Forte | ~12-15x | + Mélange des opcodes, encodage, leurres |
VM High | Très forte | ~15-18x | + Code mort, opcodes à état, encodage de la pile |
VM Ultra High | Maximum | ~20x+ | + Couches d'obfuscation non-VM |
Les chiffres de performance sont des moyennes - l'impact réel dépend fortement du code (un code très récursif ou comportant des boucles chaudes sera nettement plus lent).
Préréglages non-VM (obfuscation standard)
| Préréglage | Protection | Performance | Fonctionnalités |
|---|---|---|---|
Default | Basique | Minimale | Tableau de chaînes, simplification |
Low | Légère | ~1.1x | + Auto-défense, désactivation de la console |
Medium | Modérée | ~1.5x | + Flux de contrôle, code mort, base64 |
High | Forte | ~2x | + Protection anti-débogage, encodage rc4 |
Aperçu de l'interface
- Éditeur d'entrée - collez ou saisissez votre code source JavaScript. Glissez-déposez des fichiers ou utilisez le bouton d'envoi. Les fichiers HTML contenant des scripts en ligne sont également pris en charge Pro.
- Panneau de sortie - affiche le résultat obfusqué. Utilisez les boutons Copy ou Download pour récupérer le code protégé.
- Sélecteur de préréglage - choisissez un préréglage VM ou non-VM. Les préréglages VM sont regroupés en haut. Le préréglage détermine les options de base, que vous pouvez ensuite personnaliser.
- Panneau d'options - affinez les réglages d'obfuscation. Cliquez sur l'icône
?à côté d'une option pour consulter sa documentation. - Bouton Obfuscate - transforme votre code selon les options sélectionnées. Les préréglages VM sont traités côté serveur ; les préréglages non-VM s'exécutent dans votre navigateur.
- Envoi multi-fichiers Pro - traitez plusieurs fichiers d'un coup et téléchargez le résultat au format ZIP.
- Panneau d'historique Pro - retrouvez vos obfuscations précédentes et restaurez l'entrée ou la sortie.
