Comment chiffrer ou brouiller mon script shell pour qu'il soit illisible à l'œil nu? L'une ou l'autre méthode serait acceptable, veuillez fournir des étapes spécifiques.
Comment chiffrer ou brouiller mon script shell pour qu'il soit illisible à l'œil nu? L'une ou l'autre méthode serait acceptable, veuillez fournir des étapes spécifiques.
Réponses:
Vous pouvez essayer les étapes décrites sur ce site Web, intitulées: Comment chiffrer votre script shell Bash sous Linux à l'aide de SHC . Cet article explique l'utilisation d'un outil appelé SHC - Compilateur de scripts Shell .
Il s'agit d'un exécutable que vous devrez créer à l'aide de gcc / g ++.
$ ./shc -f random.sh
Une fois que vous l'exécutez, votre script shell random.sh
sera converti dans ce fichier:
-rwx-wx--x. 1 ramesh ramesh 11752 Mar 27 01:12 random.sh.x
Non, il y a une bonne analyse de la méthode utilisée par l'outil SHC qui montre qu'elle n'est pas trop forte et peut être contournée si vous savez ce que vous faites. L'article a été publié sur le site linuxjournal.com, intitulé: Paranoid Penguin - Limitations of shc, a Shell Encryption Utility .
REMARQUE: ces classes d'outils sont probablement mieux décrites comme des obscurcisseurs.
fg
pour l'amener au premier plan, puis cela a bien fonctionné. Je cherche toujours des alternatives.
Si vous souhaitez crypter un script shell, utilisez GPG . Celui qui veut exécuter votre script devra bien sûr le décrypter en premier.
Si vous voulez que quelqu'un puisse exécuter le script sans le lire, c'est un problème complètement différent qui n'a rien à voir avec le cryptage. C'est ce qu'on appelle l' obscurcissement .
Si vous avez un mot de passe ou d'autres informations confidentielles dans ce script, aucune obfuscation ne le masquera. Tôt ou tard, le script utilisera le mot de passe pour faire quelque chose et à ce stade, le mot de passe apparaîtra clairement à quiconque le recherchera.
Si vous voulez masquer le fonctionnement de votre script parce que vous avez peur que quelqu'un le copie, oubliez-le. Tout le monde s'en fout.
Si vous souhaitez masquer votre script parce que vous avez honte de sa qualité, corrigez-le.
Si vous voulez masquer le fonctionnement de votre script parce que vous voulez cacher ce qu'il fait, ce n'est pas faisable. Quelqu'un peut regarder votre script pendant son exécution et regarder ce qu'il fait.
Si vous avez lu jusqu'ici et que vous souhaitez toujours «crypter» votre script, vous vous méprenez sur quelque chose de majeur. N'envoyez votre script à personne et ne l'envoyez pas en texte brut.
J'ai compris cela en cherchant sur Internet, avec la permission de Claudio P.
Écrivez votre script (script-base.sh)
#!/bin/sh
echo "Hello World"
Chiffrez votre script (donnez un mot de passe):
openssl enc -e -aes-256-cbc -a -in script-base.sh > script-enc
Écrivez de Wrapper (script-final.sh):
#!/bin/sh
openssl enc -d -aes-256-cbc -a -in script-enc | sh -
Exécutez "script-final.sh", entrez le mot de passe et le script s'exécutera sans écrire le script en texte brut sur le disque.
Fondamentalement, vous pouvez masquer mais pas compiler votre script. La raison simple est que les scripts shell sont interprétés des commandes individuelles qui doivent être exécutées une par une par le système, et que vous pouvez voir ces commandes lorsqu'elles sont exécutées une par une par le système avec l' sh -x
indicateur (et peut-être aussi le -v drapeau)
Pour la plupart des programmeurs, cela suffira pour comprendre ce qui se passe.
Vous pouvez obscurcir vos variables et votre flux général si vous le souhaitez, mais vous ne pouvez pas obscurcir les commandes individuelles exécutées par votre programme - qui pour les scripts shell sont généralement toutes .
La solution la plus simple consiste probablement à réécrire le script shell dans un langage compilé comme C.
essayez de soumettre votre script à ce site si vous souhaitez le cacher au public.
alors que beaucoup peuvent être en désaccord avec l'idée de chiffrer ou de brouiller le code source d'un script écrit dans un langage interprété, je comprends pourquoi les gens veulent faire ça.
en tant que quelqu'un qui s'est fait voler son travail plusieurs fois, je me fiche de savoir si "l'obscurcissement" ou le "cryptage" est un tabou. tant que mon script est protégé et qu'il fonctionne comme avant le cryptage, je suis assez content. plus jamais je ne laisserai quelqu'un d'autre prendre mes idées et courir avec. et non, écrire mon script dans une langue compilée n'est pas une option. je ne sais pas comment.
de toute façon, si vous ne souhaitez pas utiliser le site mentionné ci-dessus, essayez la dernière version de shc. Je pense qu'ils l'ont mis à jour dans github pour répondre aux nombreuses préoccupations de sécurité que d'autres ont mentionnées. tapez ce qui suit dans google " shc github " et vous verrez une multitude d'options disponibles que vous pouvez essayer.
bonne chance!