D'ailleurs, il existe aussi de quoi compiler du bash... Pour le Perl, je sais qu'il y a perl2exe pour Windows.
Annonce
Réduire
Aucune annonce.
Obfuscateur
Réduire
X
-
-
Euh je sais pas si c'est la même chose, pyc, c'est du bytecode, l'équivalent de perl2exe pour python est py2exe.
Le soucis de ce genre de programme, c'est que tu te tapes l'installation de l'interpréteur complet, ce qui rend la taille de ton code hyper lourd, des Mo au lieu de quelques Ko.
En plus de tout ça, ton code sera moins efficace tant dans son execution que dans ses performances. je connais pas perl, mais si il y a que ça, à la rigueur...
Commentaire
-
Envoyé par SAKAROV Voir le messageah bah si c'est fonctionnel et illisible : c'est parfait.
reste à voir si c'est adaptable pour python, bash et perl.Envoyé par fred Voir le messagec'est fonctionnel et illisible, et impossible de faire un reverse, on peut guère mieux non?
Exemple ouvrir le .pyc dans un éditeur hexa et je change le magic number D1F20D0A en B3F20D0A et l'envoyer sur http://depython.net/Dernière modification par Iddl3, 19 janvier 2012, 06h27.WITHOUT DEVIATION FROM THE NORM, PROGRESS IS NOT POSSIBLE
-Frank Zappa
Commentaire
-
Salut Iddl3,
Tu m'en apprends une bonne, je ne savais pas, mais tu me diras ce n'est pas mon domaine ce genre de choses.
Donc à la rigueur compiler en exe, mais là encore avec un éditeur hexa, c'est possible aussi non?
Sinon obfusquer, possible aussi de désobfusquer?
Y a-t-il vraiment un moyen sûre de protéger un code, à ce que j'ai pu lire dans les bouquins, il me semble que non, je me trompe?
Commentaire
-
Envoyé par fred Voir le messageDonc à la rigueur compiler en exe, mais là encore avec un éditeur hexa, c'est possible aussi non?
Envoyé par fred Voir le messageSinon obfusquer, possible aussi de désobfusquer?
Le but est de trouver un petit 'tricks', un petit algo de cryptage perso qui "crypte" (j'ai mis des gros guillemets^^) un source (enfin, plusieurs, trois langages) mais qui fasse en sorte que celui-ci demeure interprétable, bien qu'illisible. Il est possible de désobfusquer un script, mais encore faut-il avoir compris l'algo perso
Envoyé par fred Voir le messageY a-t-il vraiment un moyen sûr de protéger un code, à ce que j'ai pu lire dans les bouquins, il me semble que non, je me trompe?
Donc, en gros, pour bien obfusquer, il faut :
1. Désindenter totalement le source ;
2. Supprimer tous les commentaires (sinon le # du python (pour l'exemple) serait vite grillé) ;
3. Injecter du code non interprété en masse (en gros le source va faire 2 ou 3 fois (ou plus) la taille du script original) afin de troubler encore plus le RE* ;
4. Trouver un petit algo maison, pas bien compliqué mais différent des autres "connus" (donc, maison) tout en laissant donc le code interprétable.
Et le tool doit donc pouvoir obfusquer/désobfusquer les 3 langages.
Après, c'est ce tool là qu'il ne faut évidemment pas faire circuler ! Car si tu fourni le tool pour obfusquer/désobfusquer... bon...^^ Je ne te fais pas d'image
Ce tool on pourrait le mettre en ligne sur le forum, et les gens qui voudraient obfusquer/désobfusquer leur code viendront le faire ici (dans un sous-domaine du forum).
Là tu vas me dire : "bah oui mais s'ils viennent sur le forum, ils pourront toujours reverse le code de tout le monde".
Ce à quoi je vais te répondre : "bien sûr, sauf qu'on ne va pas procéder seulement ainsi"
En effet, on va leur donner un code (une clé) qui leur permettra de décrypter le source pour bien valider que ce sont bien eux les propriétaires du source.
En gros, cela fonctionnera comme ceci :
1. L'utilisateur arrive sur le sous-domaine du tool d'obfuscation (exemple : toolname.thehackademy.fr) ;
2. Il sélectionne le langage de son script (au choix donc, perl, python, bash.. qui seront forcément différents car la syntaxe diffère, bref) ;
3. Il copie colle son source dans un textarea ;
4. Il clique sur "Obfuscate" ;
5. Il reçoit son code obfusqué + une clé perso (exemple : 37aVb2M).
S'il veut désobfusquer : on répète les étapes de 1 à 3, puis :
4. Il clique sur "Desobfuscate" ;
5. Il rentre sa clé ;
6. Il reçoit son script en clair.
Pour ce qui est de la sécu de la page en PHP, ça ne devrait pas poser de problèmes. Et pour ce qui est de la sécu du serveur, encore moins.
Pour ce qui est de l'algo, c'est extrêmement simple à faire (tu peux en faire 100/j c'est pas un souci, suffit de changer quelques variables de l'algo et hop^^). La seule difficulté demeure dans le fait que l'algo ne doit pas être trop "simple". Il faut qu'il soit un minimum tordu, de sorte à ce que les RE ne le trouve pas facilement (ça ça ne sera pas bien compliqué, et si quelqu'un trouve, on modifie une variable ou deux, et il est reparti pour un tour complet^^). Et bien sûr (la pour le coup, j'en ai aucune foutue idée) il faut que le script soit, encore une fois, je répète, interprétable une fois obfusqué.
Donc ce n'est pas compliqué tout ça, mais ce n'est pas "si simple" non plus.
Là où moi, perso, je suis complètement largué, c'est "comment faire en sorte que le source obfusqué demeure interprétable". Ca ne devrait pas poser de problèmes à des dévs + expérimentés que moi, comme toi par exemple Pour le reste, c'est bon.
*RE=reverse engineer
PS : Au fait, il ne s'agit pas de balancer l'algo ici^^ hein^^ parce-que j'te connais fred, tu va balancer un script ici Je vais créer une section spéciale pour ce tool, même si celui reste relativement simple et sera relativement rapide à faire.
En gros, ceux qui sont motivés par cela se manifestent, je crée la section, et vous faites vos petites affaires ensembles
Il faut donc :
- un dév python ;
- un dév perl ;
- un 'dév' bash ;
(ou un dév qui maîtrise les trois)
- un cryptologue qui s'y connait un minimum pour faire un petit algo perso simple ;
- un dév PHP ;
+ savoir quel langage utiliser pour ce tool d'obfuscation online et donc un dév en ce langage.
Voilà
Commentaire
-
des nouvelles de cet utilitaire qui pourais etre bien utile ?"Tout le monde savait que c'était impossible. Est arrivé un qui ne le savait pas et qui l'a fait !" Marcel Pagnol ////// "Certains voient les choses telles qu’elles sont et se disent pourquoi donc ? D’autres rêvent de choses qui n’ont jamais existé et se disent pourquoi pas !" George Bernard Shaw
Commentaire
-
J'avais commencé à faire des tests sur du bash, mais rien de très concluant encore. Je faisais plus de la recherche, je tâtais le terrain quoi ^^
Pour les autres, je ne sais pas !
Commentaire
-
Je vois pas comment faire pour l’exécution.
Sauf si on créer un loader qui permettrait d’exécuter le code source crypter. (genre zend guard)"Exeunt les délires de l'amour entés sur une pratique non maîtrisée du sexe. Exit derechef la passion voluptueuse qui fait voir l'être aimé toujours autre qu'il n'est et qui pousse à posséder ce qu'on ne peut pas posséder." Epicure
Commentaire
-
ptinaze on as dit pas de chiffrement. si on commençait par le bash, on pourrait faire une boucle qui analyse un fichier qui contient le script :
- si c'est un commentaire => sup
- analyser pour trouver les noms de variables et les modifier en quelque chose de compliqué
- de façon pseudo-aléatoire, ajouter un nombre aléatoire de lignes de code de différentes natures...
Voilà c'est quelques pistes, désolé, j'ai pas le temps de pondre un petit script..."Tout le monde savait que c'était impossible. Est arrivé un qui ne le savait pas et qui l'a fait !" Marcel Pagnol ////// "Certains voient les choses telles qu’elles sont et se disent pourquoi donc ? D’autres rêvent de choses qui n’ont jamais existé et se disent pourquoi pas !" George Bernard Shaw
Commentaire
-
Envoyé par SAKAROV Voir le message1. Désindenter totalement le source ;
Commentaire
-
Envoyé par Daisy Voir le messageEt garder du python interprétable par un interpréteur standard? M'paraît un peu dur... :/
Commentaire
-
Envoyé par Daisy Voir le messageEt garder du python interprétable par un interpréteur standard? M'paraît un peu dur... :/
Déjà supprimer toutes les lignes vides
Enregistrer le nombre d'espaces sur chaque ligne pour la réindentation
Supprimer les indentations
et la suite, voir le post du 19/01 de Sakarov...Dernière modification par fred, 28 février 2012, 15h33.
Commentaire
-
Je vois toujours pas bien comment on peur garder du pyhton interprétable en virant les indentations, là va falloir que tu m'éclaires ^^
Je comprends en gros le principe de l'obfuscation, et je trouve ça assez sympa comme challenge. Je suis un peu tarte niveau sécurité donc je serai pas d'une grande aide, mais ça m'plaît. Cela dit du python j'en mange à tous les repas depuis 1 an au boulot donc si ça peut rendre service...
Edit: Je viens de tomber sur un truc rigolo: http://c2.com/cgi/wiki?ObfuscatedPythonDernière modification par Daisy, 29 février 2012, 12h33.
Commentaire
-
Pour l'indentation du python, il faut voir ou revoir vos éxigences, si vous souhaiter pouvoir le lancer tel quel, cela ne me semble pas possible,en revanche, fait un petit soft qui analyse les while, if, etc... et pourrais recreer l'indentation, me semble possible. il faut juste le faire ^^"
mais en restant avec quelque chose d'éxucutable sans opération inverse, je pense pas qu'on puisse y grand chose..."Tout le monde savait que c'était impossible. Est arrivé un qui ne le savait pas et qui l'a fait !" Marcel Pagnol ////// "Certains voient les choses telles qu’elles sont et se disent pourquoi donc ? D’autres rêvent de choses qui n’ont jamais existé et se disent pourquoi pas !" George Bernard Shaw
Commentaire
-
Envoyé par Daisy Voir le messageJe vois toujours pas bien comment on peur garder du pyhton interprétable en virant les indentations, là va falloir que tu m'éclaires ^^
Je comprends en gros le principe de l'obfuscation, et je trouve ça assez sympa comme challenge. Je suis un peu tarte niveau sécurité donc je serai pas d'une grande aide, mais ça m'plaît. Cela dit du python j'en mange à tous les repas depuis 1 an au boulot donc si ça peut rendre service...
Edit: Je viens de tomber sur un truc rigolo: http://c2.com/cgi/wiki?ObfuscatedPython
Commentaire
Commentaire