Récupérer le script en texte brut à partir compilé script bash
Il y a quelques temps, j'ai écrit quelques scripts bash pour mon école. Je pensais que ça allait être très habile pour 'protéger', j'ai donc compilé avec shc
dans un fichier binaire. Quelques semaines plus tard, j'ai perdu le non scripts et maintenant, j'ai seulement mon binarys gauche.
Est-il un moyen de récupérer les scripts de retour de la shc
généré binarys? J'ai regardé dans le code source de shc
de trouver un moyen de décompiler le binarys avec pas de chance.
- Nous espérons que vous apprenez votre leçon et de commencer à l'aide d'un système de contrôle de version! (git est un grand)
Vous devez vous connecter pour publier un commentaire.
À l'aide de la shc pour compiler vos scripts ne les protège pas. Vous n'obtenez pas plus de sécurité de cette façon. Le shc binaire compilé déchiffre et charge le script en mémoire lors du démarrage. Vous pouvez ensuite, juste après que vous avez commencé la binaire, juste erreur de segmentation et de récupérer votre script à partir de la coredump.
Voici un petit exemple de script nommé test.sh:
Le compiler avec la shc:
Le démarrer en tant que processus d'arrière-plan et de l'erreur tout de suite:
sommeil 0.2 donnera le binaire assez de temps à démarrer et à décrypter le script original. La variable $! contient le pid du dernier processus d'arrière-plan a commencé, de sorte que nous pouvons facilement nous tuer avec la faute de segmentation du signal SIGSEGV (de même que pour tuer -11 $!).
Maintenant, nous pouvons la recherche de la décharge pour le script d'origine:
On pipe les données dans le fichier de vidage à cordes, ce qui permettra ensuite de nous montrer tous les caractères imprimables dans le fichier et nous pouvons maintenant voir le script original entre la poubelle:
Si le script est assez grand, vous devrez peut-être ajuster la base de la taille du fichier avec ulimit.
Assez facile, droit?
Keep it simple! 🙂
Pour récupérer les scripts de retour de la shc généré binaires simplement enregistrer la copie de l'original du système sh exécutable, puis renommez le système cat exécutable pour les poissons et exécuter le shc a généré binaire 🙂
Vous verrez alors à la restitution de la source du script shell dans la console.
Juste une supposition.. vous pouvez le système d'enregistrement pour les appels à l'aide par exemple strace ou quelque chose de similaire, puis essayez de restaurer au moins une fonctionnalité de base.
Ou, vous pouvez demander à l'auteur de shc (http://www.datsi.fi.upm.es/~frosal/sources/shc.html).
PS
La rumeur veut que quelqu'un l'a écrit deshc (http://www.linuxjournal.com/article/8256)
UnSHc, un script automatique pour récupérer *.sh.x fichier crypté crypté avec la SHc, l'outil a été publié sur github ici.
UnSHc est un outil pour inverser le chiffrement de tout SHc chiffré *.sh.x script. Il est basé sur l'auto-extraction de toutes les données enfouies dans le *.sh.x par l'inverser automatiquement. Avec ces chiffrement des données (utilisé au chiffrement), l'outil de régénérer la première *.sh fichier en texte brut.
Comment utiliser UnSHc :
Vidéo de démonstration peut être vu ici (en anglais et en français).