6
votes

Récupérer le script de texte brut du script Bash compilé

Il y a quelque temps, j'ai écrit des scripts Bash pour mon école. Je pensais qu'il serait très intelligent de les "protéger", alors je les ai compilées avec SHC dans un fichier binaire. Quelques semaines plus tard, j'ai perdu les scripts non pondérés et maintenant je n'ai que mes binaires.

Y a-t-il un moyen de récupérer les scripts à partir des binaires générés par SHC ? J'ai regardé dans le code source de SHC pour trouver un moyen de décompiler les binaires sans chance.


1 commentaires

J'espère que vous apprendrez votre leçon et commencez à utiliser un système de contrôle de la version! (Git est un excellent)


4 Réponses :


1
votes

Juste une suppose .. Vous pouvez enregistrer des appels système en utilisant par exemple strace ou quelque chose de similaire, puis essayez de restaurer au moins la fonctionnalité de base.

ou, vous pouvez demander auteur de shc ( http://www.datsi.fi.upm.es/~frosal/sources/shc.html ).

ps

La rumeur a que quelqu'un a écrit Deshc ( http://www.linuxjournal.com/article/ 8256 )


0 commentaires

54
votes

Utiliser SHC pour compiler vos scripts ne les protège pas. Vous n'obtenez pas plus de sécurité de cette façon. Le binaire compilé SHC décrypte et charge le script en mémoire lors du démarrage. Vous pourriez alors, juste après que vous ayez commencé le binaire, juste segfault-le et récupérez votre script de la CoreDump.

Voici un petit script nommé Test.sh: P>

...
4.0.37(2)-release
BASH_VERSINFO
BASH_VERSINFO
release
i686-pc-linux-gnu
BASH_EXECUTION_STRING
BASH_EXECUTION_STRING
                           #! /bin/bash
echo "starting script and doing stuff"
sleep 1
echo "finished doing stuff"
1000
EUID
EUID
1000
...


0 commentaires

3
votes

Gardez-le simple! :)

Pour récupérer les scripts à partir des fichiers binaires générés à la SHC, enregistrez simplement la copie de l'exécutable du système SH d'origine, puis renommez le système de CAT exécutable sur Sh et exécutez le binaire généré SHC :) Donc, vous verrez la source déchiffrée du script shell dans la console.


2 commentaires

Soyez prudent avec le remplacement du système sh, beaucoup peut aller mal ... vous voudrez peut-être faire cela dans un environnement chroot


Pourriez-vous élaborer cela plus



1
votes

UNSHC, un script automatique à récupérer * .sh.x Fichier crypté crypté avec SHC Tool a été publié sur Github ici .

UNSHC est un outil permettant d'inverser le cryptage de tout script SHC crypté * .sh.x. Il est basé sur l'extraction automatique de toutes les données cryptographiques incorporées dans le * .sh.x en l'inversant automaticaly. Avec ces données cryptographiques (utilisées au cryptage), l'outil régénère le fichier * .sh initial en clairexuel. P>

Comment utiliser UNSHC: P>

[root@server:~/unshc]$ ./unshc.sh -h
 _   _       _____ _   _
| | | |     /  ___| | | |
| | | |_ __ \ `--.| |_| | ___
| | | | '_ \ `--. \  _  |/ __|
| |_| | | | /\__/ / | | | (__
 \___/|_| |_\____/\_| |_/\___|

--- UnSHc - The shc decrypter.
--- Version: 0.6
------------------------------
UnSHc is used to decrypt script encrypted with SHc
Original idea from Luiz Octavio Duarte (LOD)
Updated and modernized by Yann CAM
- SHc   : [http://www.datsi.fi.upm.es/~frosal/]
- UnSHc : [https://www.asafety.fr/unshc-the-shc-decrypter/]
------------------------------

[*] Usage : ./unshc.sh [OPTIONS] <file.sh.x>
         -h | --help                          : print this help message
         -a OFFSET | --arc4 OFFSET            : specify the arc4() offset arbitrarily (without 0x prefix)
         -d DUMPFILE | --dumpfile DUMPFILE    : provide an object dump file (objdump -D script.sh.x > DUMPFILE)
         -s STRFILE | --stringfile STRFILE    : provide a string dump file (objdump -s script.sh.x > STRFILE)
         -o OUTFILE | --outputfile OUTFILE    : indicate the output file name

[*] e.g :
        ./unshc.sh script.sh.x
        ./unshc.sh script.sh.x -o script_decrypted.sh
        ./unshc.sh script.sh.x -a 400f9b
        ./unshc.sh script.sh.x -d /tmp/dumpfile -s /tmp/strfile
        ./unshc.sh script.sh.x -a 400f9b -d /tmp/dumpfile -s /tmp/strfile -o script_decrypted.sh


2 commentaires

Un lien vers une solution potentielle est toujours la bienvenue, mais s'il vous plaît Ajoutez son contexte autour du lien afin que vos collègues utilisateurs auront une idée de ce que c'est et pourquoi c'est là-bas. Citez toujours la partie la plus pertinente d'un lien important, au cas où le site cible est inaccessible ou se transforme en permanence hors ligne. Prendre en compte qui étant à peine plus qu'un lien vers un site externe est une raison possible de Pourquoi et comment Certaines réponses sont-elles supprimées? .


Considérant que c'est le site anglais unique, un lien vers l'information disponible uniquement en français semble inapproprié.