Comment minifier / masquer un script bash
Bien sûr un fichier bash ne peut pas être réellement obscurci et sera toujours lisible. Et je ne veux pas les envelopper dans certains paquet binaire.
Et en renommant les variables locales ne serait pas la peine.
Mais est-il fiable bash simple obfuscator ou minifier qui au moins permet d'évacuer l'indentation, toutes les lignes vides et tous les espaces sans rien casser? Et surtout, les commentaires et commentée des portions de script qui peuvent contenir des documents sensibles ou de renseignements?
J'aurais peur de simple grep/sed-lignes pour faire ce parce que "HEREDOCs" ne doivent pas être modifiés en cours, alors un peu de réel, l'analyse est nécessaire.
Peut-être il y a un outil pour faire cela, ce serait super!
source d'informationauteur Christian
Vous devez vous connecter pour publier un commentaire.
Voici un outil que j'ai créé pour les scripts bash minification: https://github.com/precious/bash_minifier – il essaie de supprimer tous les commentaires et que de nombreux espaces/onglets/retours à la ligne que possible. Il est également disponible en tant que service ici https://bash-minifier.appspot.com/.
De rapetisser votre script bash exécuter cette commande:
😛 voici quelque chose de drôle.
dire que votre script est nommé
origin
et l'obfuscation est nomméobsf
.ici est
origin
:ici est
obsf
maintenant
rm origin
et exécuterobsf
comme ceci:heh :3
Même si c'est une vieille question, il semble être populaire sur Google. J'ai également été à la recherche pour un bash minifer/obfuscator, et n'a pas, comme celui de la réponse.
Je ne voulais pas ajouter du charabia, ou de compiler le script. J'ai donc écrit un qui fait ce que je voulais en Perl, et le mettre sur GitHub à https://github.com/Aralhach/bashobfus/tree/master
Il peut:
Il pourrait y avoir certains cas où il échoue, mais je l'ai testé avec une assez grande script bash, et les cas de la variable de remplacement ont sauté. Il a également feuilles variables à l'intérieur des guillemets simples (') seul --ce surgi lors de l'impression d'un script AWK-- mais remplace entre guillemets simples (') lorsque l'instruction est déjà à l'intérieur de guillemets doubles (") --ce surgi lors de l'impression d'un MySQL déclaration.
Cela me fait penser que j'ai couvert tous les grands cas d'utilisation, mais j'ai eu mal avant. Si vous trouvez des bugs, n'hésitez pas à les signaler (ou les corriger! :D). J'ai été également penser à l'ajout d'une fonction pour rejoindre, de courtes lignes en un seul avec un ";" mais les cas sont trop nombreux pour analyser tout en faisant de mon échéance.
J'espère que les gens le trouvent utile!
Un Outil pour obscurcir les scripts shell:
http://www.comp.eonworks.com/scripts/obfuscate_shell_script-20011012.html
Sorte de bête à faire, mais c'est à vous. Il existe également des moyens de "compiler" votre shell script dans un fichier exécutable. Cette post accepté de répondre donne plusieurs liens avec les outils pour le faire.
Minification et de l'Obscurcissement d'un script shell sont deux choses différentes.
Minification des moyens de réduire la taille d'un script en supprimant tous les caractères inutiles à partir du code source, sans changer ses fonctionnalités. L'Obfuscation d'autre part des moyens de faire le script difficile, si pas impossible, de lire.
Minification:
À rapetisser un gros script, vous pouvez exécuter le code suivant à l'encontre du script que vous voulez rapetisser:
Note, minification tend à faire une différence que si le script minifiés est grand...avec plusieurs centaines ou même des milliers de lignes. J'ai pu couper quelques méga-octets à partir d'un script à l'aide du code ci-dessus.
Dissimulation:
Après, minification est terminé, vous pouvez simplement arrêter là si la réduction de la taille est ce que vous allez pour. Si toutefois, après la minification, vous souhaitez dissimuler votre script, vous avez des options.
La façon la plus simple de dissimuler votre script est grâce à l'utilisation des outils de chiffrement comme Openssl.
De Chiffrement/Masquer La Réalité:
Fichier d'origine
script.sh
:Créer
other.sh
Résultat (
cat other.sh
):Essayer:
Basé sur c00kiemon5ter idée, ici, vous avez LE script
Votre tordu récursive esprits de l'amour, car ce n'est pas le script original, mais l'obfuscation(crypté(l'original))