Aller au contenu
Aback Tools Logo

Obfuscateur de nom de variable Bash

Remplacez les noms de variables Bash par des noms courts obscurcis pour protéger la logique de votre script shell. Les éléments intégrés (echo, cat, grep, sed, awk), les variables spéciales ($?, $@, $#, $$) et les variables d'environnement (PATH, HOME, USER) sont automatiquement préservées. Choisissez parmi trois styles de dénomination et affichez un tableau complet de mappage de renommage. Gratuit, privé et aucune inscription requise.

Bash Variable Name Obfuscator
Paste your Bash script to replace variable names with short obfuscated names. Builtins (echo, cat, grep), special variables ($?, $@, $#), and environment variables (PATH, HOME) are automatically preserved. View the complete rename mapping table with collision detection.
Paste Bash code or load the example to get started

Paste Bash code and click Obfuscate Variable Names to replace variables with short names

Builtins (echo, cat, grep), special vars ($?, $@, $#), and env vars (PATH, HOME) are automatically preserved

Pourquoi utiliser notre obfuscateur de noms de variables Bash ?

  • Préserve les éléments intégrés et les variables spéciales : les éléments intégrés de Bash (echo, cat, grep, sed, awk), les variables spéciales ($?, $@, $#, $$, $!) et les variables d'environnement (PATH, HOME, USER, SHELL) sont automatiquement détectées et préservées. Seules vos variables de script personnalisées sont obscurcies, garantissant que le script reste entièrement fonctionnel.
  • Trois styles de dénomination : choisissez entre des noms alphabétiques courts (a, b, c...), des noms avec un préfixe de soulignement (_0, _1, _2...) ou des noms codés en hexadécimal (_x0, _x1, _xff...). Chaque style produit des identifiants Bash valides qui fonctionnent avec les affectations de variables, l'expansion $ et les contextes arithmétiques.
  • Table de mappage complète : après l'obscurcissement, affichez la table de mappage complète des noms de variables montrant chaque variable d'origine ainsi que son remplacement obscurci. Les extraits de contexte aident à identifier le rôle de chaque variable. Le mappage est essentiel pour le débogage et pour maintenir une carte inversée à des fins de dépannage.
  • Détection de collision et avertissements : le moteur détecte automatiquement les collisions de noms potentielles et vous avertit lorsque deux variables d'origine correspondent au même nom obscurci. Il vérifie également que les noms générés n'entrent pas en conflit avec les modèles de code, les éléments intégrés ou les variables d'environnement existants.

Cas d'utilisation courants de l'obfuscateur de nom de variable Bash

  • Protection des scripts Shell propriétaires : masquez les noms de variables dans les scripts Bash commerciaux distribués aux clients ou déployés sur les serveurs clients. Les noms significatifs comme "database_password" ou "api_endpoint" deviennent des noms courts et illisibles qui ne révèlent rien sur la logique interne du script.
  • Sécurité des scripts DevOps et de déploiement : protégez les scripts de pipeline CI/CD, l'automatisation du déploiement et le code de provisionnement de l'infrastructure en masquant les noms de variables. Les variables d'environnement ($PATH, $HOME) et les éléments intégrés communs restent intacts, gardant le script fonctionnel tout en masquant les détails d'implémentation.
  • Scripts CTF et de défi de sécurité : créez des scripts Bash obscurcis pour les défis Capture The Flag et les exercices de formation à la sécurité. L'obscurcissement des noms de variables ajoute une couche supplémentaire de difficulté d'analyse tout en gardant le script fonctionnellement identique à l'original.
  • Protection du code source pour les indépendants : les développeurs indépendants de Bash peuvent masquer les noms de variables dans les scripts fournis aux clients, protégeant ainsi leur propriété intellectuelle tout en fournissant un code entièrement fonctionnel. La table de mappage peut être conservée comme documentation pour les responsables autorisés.
  • Distribution de scripts d'entreprise : les grandes organisations distribuant des outils et utilitaires Bash internes peuvent masquer les noms de variables pour empêcher l'ingénierie inverse occasionnelle par les employés ou les sous-traitants tout en conservant la fonctionnalité de script pour les utilisateurs autorisés.
  • Outil pédagogique pour les éléments internes de Bash : les étudiants qui apprennent la portée, l'expansion et la substitution des variables Bash utilisent l'obfuscateur pour comprendre comment les noms de variables affectent le comportement du script. La comparaison des scripts originaux et obscurcis démontre le rôle des conventions de dénomination dans la lisibilité du code.

Qu’est-ce que l’obscurcissement du nom de variable Bash ?

L'obscurcissement des noms de variables Bash consiste à remplacer les noms de variables significatifs dans les scripts Bash par des alternatives courtes et non descriptives. Une variable comme database_host peut devenir $a ou $_x3f . Le script s'exécute de manière identique car Bash ne se soucie que de la dénomination cohérente des variables, mais l'intention et la signification de chaque variable sont cachées à toute personne lisant le code. Cela rend plus difficile pour une inspection occasionnelle du code de comprendre ce que fait le script, protégeant ainsi la logique propriétaire et les modèles de configuration sensibles.

Comment fonctionne notre obfuscateur de nom de variable Bash

L'obfuscateur traite votre script Bash en trois étapes : extraction, mappage et remplacement :

  1. Extraction de variables : le moteur analyse votre code Bash à la recherche de références de variables en utilisant à la fois les modèles de syntaxe $var et {'$ '}, ainsi que des affectations de variables nues (var=valeur). Chaque variable détectée est suivie avec son nombre d'utilisations et le contexte de code environnant pour la table de mappage.
  2. Préservation intelligente : lors de l'extraction, le moteur filtre automatiquement les variables spéciales de Bash ($?, $@, $#, $$, $!, $-, $_, $0-$9), les variables d'environnement (PATH, HOME, USER, SHELL, PWD, etc.) et toutes les fonctions intégrées de Bash (echo, cd, ls, cat, grep, etc.). Ceux-ci sont conservés exactement tels quels pour garantir que le script obscurci s’exécute correctement.
  3. Génération et remplacement de noms : chaque variable extraite se voit attribuer un nom court et obscurci en fonction du style de dénomination choisi. Le moteur évite les collisions en vérifiant les modèles de code existants et les identifiants réservés. Les remplacements sont appliqués aux modèles $var, {'$ '}, var= et var+= tout au long du script à l'aide d'expressions régulières prenant en compte les limites des mots.

Ce qui est obscurci et ce qui est préservé

Comprendre ce qui change et ce qui reste le même est essentiel pour utiliser efficacement l'obfuscateur :

  • Variables définies par l'utilisateur : toutes les variables Bash personnalisées définies et utilisées dans votre script sont renommées en noms courts obscurcis. Cela inclut les variables locales, les paramètres de fonction, les variables de boucle et les variables temporaires.
  • Les commandes intégrées de Bash sont préservées : les commandes telles que echo, printf, read, cd, ls, cat, grep, sed, awk et toutes les autres commandes intégrées ne sont pas modifiées. La structure du script et les appels de commandes restent intacts.
  • Les variables spéciales sont conservées : $?, $@, $#, $*, $$, $!, $-, $_ et les paramètres de position $0 à $9 sont tous conservés avec leur syntaxe exacte.
  • Les variables d'environnement sont conservées : PATH, HOME, USER, SHELL, PWD et d'autres variables d'environnement courantes restent inchangées afin que le script puisse toujours accéder correctement aux ressources système.
  • Le contenu des chaînes est préservé : les valeurs des variables à l'intérieur des chaînes, des commentaires et des héréditaires qui ne sont pas de véritables références à des variables ne sont pas modifiées. Seules les références de variables actives avec le préfixe $ ou des affectations nues sont renommées.

Confidentialité, sécurité et disponibilité

Notre obfuscateur de nom de variable Bash traite tout localement dans votre navigateur à l'aide de JavaScript côté client. Vos scripts d'entrée, la sortie obscurcie générée et la table de mappage de variables ne sont jamais transmises sur le réseau, stockées sur un serveur ou enregistrées. Il n'y a aucune limite de taille de fichier, aucune inscription requise et aucun plafond d'utilisation. L'outil est entièrement gratuit et fonctionne hors ligne après le chargement initial de la page. Pour une utilisation en production, testez toujours le script obscurci dans un environnement sûr avant le déploiement.

Foire aux questions

L'obscurcissement des noms de variables Bash remplace les noms de variables significatifs dans les scripts Bash par des alternatives courtes et non descriptives. Par exemple, une variable telle que "database_password" peut devenir "$a" ou "$_x3f". Le script s'exécute de manière identique car Bash ne se soucie que d'une dénomination cohérente, mais l'intention derrière chaque variable est cachée à l'inspection occasionnelle du code.

Trois catégories sont conservées : (1) Variables spéciales : $?, $@, $#, $*, $$, $!, $-, $_ et $0 à $9. (2) Variables d'environnement : PATH, HOME, USER, SHELL, PWD et bien d'autres. (3) Commandes intégrées Bash : echo, cd, ls, cat, grep, sed, awk et toutes les autres commandes intégrées.

Trois styles de dénomination sont disponibles : des noms alphabétiques courts (a, b, c... z, aa, ab...) pour une compacité maximale, des noms avec préfixe de trait de soulignement (_0, _1, _2...) pour une distinction visuelle et des noms codés en hexadécimal (_x0, _x1, _xf...) pour une obscurcissement visuel maximal.

Non, l'obscurcissement des noms de variables n'a aucun impact sur la fonctionnalité du script tant que les noms sont systématiquement remplacés. Bash utilise un modèle de variable simple basé sur une chaîne dans lequel les noms ne sont que des identifiants.

Oui. Après l'obscurcissement, l'outil affiche un tableau de mappage complet montrant chaque nom de variable d'origine ainsi que son remplacement obscurci. Chaque entrée comprend un extrait de contexte. Vous pouvez basculer la visibilité de la table et l'utiliser comme documentation pour les responsables.

Absolument. L'outil fonctionne entièrement dans votre navigateur. Votre script d'entrée, la sortie masquée et la table de mappage ne sont jamais envoyés à aucun serveur. Tout le traitement s'effectue localement sur votre appareil. Aucune inscription requise.

Oui, mais masquez chaque fichier séparément. Si vous avez partagé des variables dans plusieurs fichiers (via les commandes source ou .), assurez-vous d'une dénomination cohérente en utilisant le même style et le même ordre de traitement. Envisagez de conserver une table de mappage pour assurer la cohérence des références entre fichiers.

Oui, 100 % gratuit, sans inscription, sans compte et sans limite d'utilisation. Les trois styles de dénomination, table de mappage, détection de collision, copie et téléchargement sont disponibles sans restrictions.