Shc - Shell script compiler
![]()
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.
Attention tout de même, shc est sûrement 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.
1. 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
2. Compilation d'un script shell
Pour tester shc, on pourra utiliser le script bash suivant :
#!/bin/bash
echo "Tux-planet c'est cool !"
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 01/01/2008 -m "Merci d'acheter la licence"
$ ./script.sh.x
./script.sh.x: has expired!
Merci d'acheter la licence


Créé en 2005, Tux-planet est un site qui a pour ambition de regrouper des articles sur Linux et le monde des logiciels libres. 





11 Commentaires pour "Shc - Shell script compiler"
Flux des commentaires de cet article Ajouter un commentaireThis isn't really a shell script _compiler_. It just wraps up the script in a binary blob.
A real shell script compiler would be an interesting (and very difficult) exercise.
Très bonne idée ... Mais sa va pas aider les utilisateur du opensource
J'avoue ne pas voir l'intérêt de ce bidule, surtout dans un environnement open source
@Rich : ok.
@Tuxargon : certes c'est pas très open source. Mais c'est toujours sympa de savoir que ça existe.
@Clément : certaine boite ne veule pas fournir leur code. C'est leur choix et shc est une solution pour elle. Il me semble par exemple que ezproxy (serveur de passerelle orienté ressources documentaires), utilise ce procédé.
For the reasons Rich mentions, it has been removed from Debian:
http://bugs.debian.org/508109
@foo : thank you for this link. Shc is not reliable, but it can discourage some users.
Ça peut bien servir à offrir des versions demo, avant de vendre un logiciel libre (opensource) et non gratuit...
Intéressant, je ne connaissais pas ça. Merci man
Sympa ce truc
j'ai fais un ptit test de performance sur des ptits scripts ça change pas grand chose mais sur des complexes et long pas joli a voir
"Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances
Lecture des informations d'état... Fait
E: Impossible de trouver le paquet shc"
mais ou est donc "shc" !
cordialement
c pas vraiment du cryptage
ps aux | grep TonScript.sh.x
et tu verra le script en claire