Annonce

Réduire
Aucune annonce.

Obfuscateur

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • #16
    D'ailleurs, il existe aussi de quoi compiler du bash... Pour le Perl, je sais qu'il y a perl2exe pour Windows.

    Commentaire


    • #17
      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


      • #18
        Envoyé par SAKAROV Voir le message
        ah 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 message
        c'est fonctionnel et illisible, et impossible de faire un reverse, on peut guère mieux non?
        Le python compilé est très facilement réversible, je ne le conseille pas.

        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


        • #19
          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


          • #20
            Envoyé par fred Voir le message
            Donc à la rigueur compiler en exe, mais là encore avec un éditeur hexa, c'est possible aussi non?
            en exe, idem oui.

            Envoyé par fred Voir le message
            Sinon obfusquer, possible aussi de désobfusquer?
            ça, c'est justement le but du tool, obfusquer et 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 message
            Y 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?
            Comme on dit toujours : rien n'est infaillible. Donc la réponse à cela sera toujours "non", tu ne te trompes pas. Cependant... cependant... il est plus facile de reverse un tool exécutable (qui a simplement été compilé) que de retrouver un simple algo totalement inconnu qui a modifié le script jusqu'à le rendre illisible. Il y a plusieurs degrés d'obfuscation, parfois c'est grillé comme le nez au milieu de la figure (on reconnait par exemple certains appels de fonction qui sont similaire tout le long du code, etc.

            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à
            sigpic

            Cyprium Download Link

            Plus j'étudie plus j'me rends compte que je n'sais rien.

            †|

            Commentaire


            • #21
              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


              • #22
                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


                • #23
                  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


                  • #24
                    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


                    • #25
                      Envoyé par SAKAROV Voir le message
                      1. Désindenter totalement le source ;
                      Et garder du python interprétable par un interpréteur standard? M'paraît un peu dur... :/

                      Commentaire


                      • #26
                        Envoyé par Daisy Voir le message
                        Et garder du python interprétable par un interpréteur standard? M'paraît un peu dur... :/
                        Ca ne vaut pas pour tous les langages, évidemment ; car en effet, comme tu le dis, certains langages ont besoin de cette indentation. En revanche, le bash par exemple peut aisément s'en passer.

                        Commentaire


                        • #27
                          Envoyé par Daisy Voir le message
                          Et garder du python interprétable par un interpréteur standard? M'paraît un peu dur... :/
                          Je te le fais pas dire, j'attend que ça se calme, car en ce moment beaucoup de boulot, mais je dois être motivé pour faire ce genre de choses.

                          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


                          • #28
                            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?ObfuscatedPython
                            Dernière modification par Daisy, 29 février 2012, 12h33.

                            Commentaire


                            • #29
                              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


                              • #30
                                Envoyé par Daisy Voir le message
                                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?ObfuscatedPython
                                3 ans de Python, et jamais tombé sur un code pareil...

                                Commentaire

                                Chargement...
                                X