Documentation
/

Premiers pas

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 Obfuscation pour des modifications minimes ou Medium Obfuscation pour 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.name

    Les noms de fonctions et de classes sont remplacés par des identifiants aléatoires. Le code qui s'appuie sur .name pour 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 de node, mais certaines options propres au navigateur ne peuvent pas être utilisées avec la cible node.
  • browser-no-eval - identique à browser, mais la sortie n'utilise pas eval(). À utiliser lorsque la page cible applique une Content Security Policy qui interdit eval/unsafe-eval.
  • node - environnement Node.js. Les options propres au navigateur sont désactivées (elles requièrent window/document et seraient sans effet ou lèveraient une erreur sous Node). Certaines défenses de vmSelfDefending qui 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 de window, pas de document, un global self différent.
  • userscript - bac à sable d'un gestionnaire de userscripts (Tampermonkey, par exemple). Les défenses vmSelfDefending sont ajustées en conséquence. Nécessite l'obfuscateur v6.9.0+.
  • bytenode - pour du code destiné à être compilé en .jsc avec 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 non
  • Disable - 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églageSécuritéPerformanceFonctionnalités
VM LowBonne~10xVM de base, répartition indirecte
VM MediumForte~12-15x+ Mélange des opcodes, encodage, leurres
VM HighTrès forte~15-18x+ Code mort, opcodes à état, encodage de la pile
VM Ultra HighMaximum~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églageProtectionPerformanceFonctionnalités
DefaultBasiqueMinimaleTableau de chaînes, simplification
LowLégère~1.1x+ Auto-défense, désactivation de la console
MediumModérée~1.5x+ Flux de contrôle, code mort, base64
HighForte~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.