Obfuscation JavaScript par machine virtuelle

Obfuscateur JavaScript

JSVeil transforme votre JavaScript en bytecode personnalisé, exécuté par une machine virtuelle générée pour votre code. Il devient ainsi plus difficile à comprendre, à reproduire et à modifier.

Essayer maintenant
(function/* JSVeil */ He(Y,d){const Q=d.Object,ee=d.Array,T=d.Function,fe=d.Reflect,S=d.Error,G=d.TypeError,ae=d.ReferenceError,Bt=d.RegExp,dt=d.BigInt,Ft=d.atob,bt=d.String.fromCharCode,Z=fe.apply,Ut=fe.construct,B=Q.defineProperty,Je=Q.getOwnPropertyDescriptor,F=Q.freeze,E=Math.imul,we=T.prototype.toString,ge=T.call.bind(T.call),Ne=T.call.bind(d.String.prototype.charCodeAt),kt=T.call.bind(ee.prototype.slice),Re=T.call.bind(ee.prototype.push),he=T.call.bind(ee.prototype.pop),qt=T.call.bind(ee.prototype.lastIndexOf),X=T.call.bind(WeakMap.prototype.get),me=T.call.bind(WeakMap.prototype.set);function ye(e){let t=2166136261;for(let n=0;n<e.length;n++)t=E(t^Ne(e,n),16777619);return t>>>0}const ve={},Qe=new WeakMap;let Xe=0;B(ve,"v",{get(){return Xe++,7}}),me(Qe,ve,9);const Ye=ve.v^7|Xe^1|X(Qe,ve)^9|E(2147483647,3)^2147483645,z=ye(Z(we,He,[]))^Ye,Ae=d.atob(Y[0]);let $=Y[1]^z;const Ce=new Uint8Array(Ae.length);for(let e=0;e<Ae.length;e++)$^=$<<13,$^=$>>>17,$^=$<<5,Ce[e]=Ne(Ae,e)^$&255;function Ze(e,t){if(!t)return e;if(t<0||t>134217728)throw new S;const n=new Uint8Array(t);let o=0,r=0;function i(f){if(f===15){let u;do{if(o>=e.length)throw new S;u=e[o++],f+=u}while(u===255)}return f}for(;o<e.length;){const f=e[o++],u=i(f>>>4);if(o+u>e.length||r+u>t)throw new S;if(n.set(e.subarray(o,o+u),r),o+=u,r+=u,o===e.length)break;if(o+2>e.length)throw new S;const c=e[o++]|e[o++]<<8;if(!c||c>r)throw new S;const a=i(f&15)+4;if(r+a>t)throw new S;if(a<=c)n.set(n.subarray(r-c,r-c+a),r),r+=a;else for

Obfuscateur en ligne

Entrée

example.js

Options d’obfuscation personnalisées

0 / 9

Structure du code

Retrouver le même résultat avec une graine fixe.

Renommer les identifiants globaux pris en charge.

Ajouter des branches trompeuses.

Restrictions d’exécution

Autoriser l’exécution uniquement dans un navigateur.

Limiter l’exécution aux hôtes autorisés.

Débogage et sortie

Vérifier régulièrement si les outils de développement sont ouverts.

Arrêter le code protégé après plusieurs longues pauses.

Masquer les messages dans la console du navigateur.

Compliquer le débogage pas à pas.

La protection intégrée par obfuscation est activée par défaut. Activez les fonctions supplémentaires selon vos besoins.

À propos de JSVeil

JSVeil protège votre JavaScript par obfuscation à l’aide d’une machine virtuelle (VM). Cette technique rend l’analyse et la rétro-ingénierie du code plus difficiles. Vous pouvez ajuster les protections selon votre projet.

Version gratuite

Gratuit jusqu’à 30 Ko.

Options d’obfuscation personnalisées

Choisissez comment obfusquer votre code et où autoriser son exécution. Chaque option s’active séparément.

Graine personnalisée

La graine détermine les choix aléatoires pendant l’obfuscation. Le même code, les mêmes options, la même version du compilateur et la même graine permettent de reproduire un résultat.

Si l’option est désactivée, le compilateur génère une nouvelle graine aléatoire cryptographiquement sûre à chaque obfuscation.

Renommer les identifiants globaux

Renomme les variables et fonctions globales prises en charge pour rendre la structure d’origine moins reconnaissable.

Vérifiez au préalable les références utilisées dans le HTML, les autres scripts et les interfaces publiques.

Faux flux de contrôle

Ajoute des branches de diversion qui compliquent la lecture du chemin d’exécution réel.

Peut augmenter la taille du fichier et le temps d’exécution. Cette fonction facultative est désactivée par défaut.

Vérification de l’environnement

Cette option restreint l’exécution dans les outils d’automatisation, jsdom, Node.js et les environnements similaires.

Seule l’exécution dans un navigateur est autorisée.

Restriction par domaine

Accepte un ou plusieurs noms d’hôte ainsi que des jokers pour les sous-domaines. Les noms internationalisés sont convertis en ASCII.

*.example.com n’inclut pas example.com. Ajoutez le domaine principal séparément si nécessaire.

Détection des DevTools

Vérifie régulièrement si les outils de développement sont ouverts. L’intervalle par défaut est de 1 500 ms.

En cas de détection, les protections à l’exécution s’activent.

Vérification des pauses de la VM

Lorsque cette option est activée, elle surveille les longues pauses pendant l’exécution du code protégé, par exemple lors du débogage. Par défaut, chaque pause détectée d’au moins 15 secondes compte pour une occurrence. Après deux de ces pauses, la VM en cours cesse d’exécuter le code protégé.

Le critère est le nombre de longues pauses, pas la durée totale d’exécution du code. Vous pouvez régler la durée minimale d’une pause et le nombre de pauses entraînant l’arrêt.

Désactiver la sortie console

Désactive la sortie console lorsque le script obfusqué s’exécute.

Utile si vous n’avez pas besoin de journaux en production, mais cela complique aussi le diagnostic des erreurs.

Protection contre le débogage

Déclenche régulièrement des instructions debugger pour interrompre le débogage. L’intervalle par défaut est de 1 000 ms.

Questions fréquentes

Qu’est-ce que JSVeil ?

JSVeil protège votre JavaScript par obfuscation à l’aide d’une machine virtuelle (VM). Cette technique rend l’analyse et la rétro-ingénierie du code plus difficiles. Vous pouvez ajuster les protections selon votre projet.

Qu’est-ce que l’obfuscation VM en JavaScript ?

L’obfuscation VM transforme le code à protéger en bytecode personnalisé. Une machine virtuelle écrite en JavaScript est intégrée au fichier pour l’exécuter. Cette couche supplémentaire rend l’analyse et la rétro-ingénierie du code plus difficiles.

Conservez-vous mon code source ?

Jamais. Votre code source sert uniquement à traiter votre demande d’obfuscation en cours et n’est pas conservé ensuite.

JSVeil est-il gratuit ?

Oui. Vous pouvez obfusquer gratuitement des fichiers JavaScript jusqu’à 30 Ko. N’hésitez pas à essayer avec votre propre code.

Besoin d’une obfuscation plus poussée ou de traiter des fichiers plus volumineux ?

Écrivez-nous à pour nous faire part de vos besoins. Nous pourrons vous proposer une solution adaptée à votre projet.