Shc - Shell script compiler


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


11 Commentaires pour "Shc - Shell script compiler"

Flux des commentaires de cet article Ajouter un commentaire
  •  

    This 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.

    RépondreRépondre
    Rich , le 30 décembre 2008 à 17:40
  •  

    Très bonne idée ... Mais sa va pas aider les utilisateur du opensource :P

    RépondreRépondre
    Tuxargon , le 30 décembre 2008 à 17:51
  •  

    J'avoue ne pas voir l'intérêt de ce bidule, surtout dans un environnement open source

    RépondreRépondre
    Clément (divarvel) , le 30 décembre 2008 à 18:03
  •  

    @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é.

    RépondreRépondre
    pti-seb , le 30 décembre 2008 à 18:06
  •  

    For the reasons Rich mentions, it has been removed from Debian:
    http://bugs.debian.org/508109

    RépondreRépondre
    foo , le 30 décembre 2008 à 18:08
  •  

    @foo : thank you for this link. Shc is not reliable, but it can discourage some users.

    RépondreRépondre
    pti-seb , le 30 décembre 2008 à 18:14
  •  

    Ça peut bien servir à offrir des versions demo, avant de vendre un logiciel libre (opensource) et non gratuit...

    RépondreRépondre
    inalgnu , le 1 janvier 2009 à 05:33
  •  

    Intéressant, je ne connaissais pas ça. Merci man ;)

    RépondreRépondre
    ButterflyOfFire , le 1 janvier 2009 à 15:47
  •  

    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 :(

    RépondreRépondre
    zoroo , le 3 janvier 2009 à 16:15
  •  

    "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

    RépondreRépondre
    temps , le 13 septembre 2010 à 10:40
  •  

    c pas vraiment du cryptage

    ps aux | grep TonScript.sh.x
    et tu verra le script en claire

    RépondreRépondre
    coooper , le 22 février 2011 à 12:59
 

Ajouter un commentaire

actualité android apache apple astuce astuces bash bilboblog blog boot chrome clavier commande commandes conky date debian Desktop développement elementary exploit faille fedora firefox flash gimp gnome google graphique Graphisme hack hacking Hardware humour intel internet iphone jailbreak Jeux Kde kernel libre Linux log logiciels Logiciels Libres lucid lynx maemo mail maquette metasploit microsoft mobile mockup monitoring mozilla multi-touch musique mysql n900 nautilus nokia noyau openoffice open source password photos php Planet publicité redhat red hat rpm réseau screenshot script serveur serveurs shell sql ssh statistiques sysadmin system Sécurité thème tux-planet tv twitter ubuntu unity vidéo vidéos vlc voyage wallpaper windows wordpress yum