Shc est un programme qui permet de compiler des scripts shell afin d’obtenir un binaire. Cette méthode offre plusieurs avantages aux développeurs. Tout d’abord, elle permet de distribuer un logiciel sans forcément fournir son code source. Ensuite, shc propose une option qui propose de positionner une date d’expiration. Cette fonctionnalité sera intéressante dans le cadre d’une distribution de logiciels avec une licence qui expire dans le temps ou d’un version beta que l’on veut bloquer.
Vous me direz quel est l’intérêt de ne pas fournir le code source ? Je pense dans le milieu des entreprises, lorsque l’on fournit à des utilisateurs travaillant sur des stations Linux des scripts ou des wrappers, il peut être intelligent de fermer le code pour éviter une utilisation détournée des scripts.
shc est quand même loin de fournir des binaires infaillibles. Des crackers peuvent facilement désassembler le fichier afin d’obtenir le code source. Néanmoins, cela découragera la plupart des utilisateurs.
Installation de Shc
Ouvrez un terminal en root et lancez la commande suivante pour une distribution à base de rpm :
yum install shc
Ou celle-ci pour une distribution à base de debian :
sudo apt-get install shc
Compilation d’un script shell
Pour tester shc, on pourra utiliser le script bash suivant :
#!/bin/bash echo "Continuez à suivre Tomzone.fr !!"
Pour compiler, il suffira d’utiliser cette commande :
shc -f script.sh
Cela devrait vous créer un fichier binaire nommé script.sh.x :
$ file script.sh.x script.sh.x: ELF 64-bit LSB executable, x86-64
Si l’on souhaite positionner une date d’expiration (format dd/mm/yyyy) avec un message à afficher quand celle-ci est atteinte :
shc -f script.sh -e 31/31/2014 -m "Le programme est arrivé à expiration, merci d'acheter la licence"
$ ./script.sh.x ./script.sh.x: has expired! Le programme est arrivé à expiration, merci d'acheter la licence
Je vous conseille cet article trouvé sur internet : http://www.admin-linux.fr/?p=7656