Annonce

Réduire
Aucune annonce.

Comment brouiller son code source tout en le laissant exécutable ?

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

  • Comment brouiller son code source tout en le laissant exécutable ?

    Bonjour messieurs,

    Je recherche une technique de "brouillage" de code source (encryption, obfuscation, les deux, ou autre). Mon but :

    I. Obfusquer mon source ;
    II. Brouiller (voire chiffrer) mon source ;
    III. Que mon source soit toujours exécutable.

    Etant donné que je dév dans plusieurs langages, il faudrait que cette technique puisse être au maximum applicative à l'ensemble des langages (bien entendu, la technique devra certainement différer en fonction des "groupes" de langages).

    Je souhaite juste que le code source soit "visible" mais "illisible" et non éditable.

    Vous allez peut-être me dire : "Oula, mais tu rêves". Eh bien non, je ne rêve pas. Je me suis déjà heurté plusieurs fois à des sources cryptées (que je voulais voir en clair) et qui était parfaitement fonctionnels.

    Evidemment, crypter un source est simple comme bonjour. Mais... que celui-ci demeure exécutable est pour moi un mystère

    Regardez cet exemple de source, en caractères ASCII :



    Déjà, à ce stade, moi perso, ça me va. Ca conviendrait à ma recherche. Je pourrais glisser dans mes codes une simple fonction qui dit que SI on touche à un seul caractère de mon code, le truc n'est plus fonctionnel.

    Après, je me suis déjà retrouvé face à... des scripts cryptés en caractères non ASCII et qui fonctionnait parfaitement ! En voici un exemple :



    Alors autant, la première technique, j'ai des pistes (mais bon, rien de bien concluant "pour le moment") mais alors pour la seconde... Aucune foutue idée. Et j'insiste bien, les deux sont fonctionnels.

    Merci de votre attention.
    sigpic

    Cyprium Download Link

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

    †|

  • #2
    Il n'y aurais pas une sorte de MBR, qui définirais tout les jumps à la chaine ?
    Ton ex serait toujours valide j'imagine.

    Pour le deuxième ça m'a l'air plus complexe ...

    Commentaire


    • #3
      en fait je me suis renseigné et il n'y a bien évidemment pas de systeme d'encodage/cryptage/brouillage universel (pour chaque langage).
      j'm'en doutais bien mais bon, j'ai eu ma seconde d'espoir^^ le tout est de s'pencher sur chaque langage et de voir ce qu'on peut y faire. Faudrait que je me renseigne +. Je vous tiendrai (peut-être) au courant
      sigpic

      Cyprium Download Link

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

      †|

      Commentaire


      • #4
        Je suis nul en code mais bon: (les fonctions présentés ici sont imaginaires, c'est juste pour présenter le concept )
        var code64 = "sourceenbase64";
        decrypt(sourcenbase64, base_64);
        execute(sourceenbase64);

        Commentaire


        • #5
          dans méta donnée tu défini le charset mais tu utilise celui d'une autre langue.
          en Europe on utilise couramment l'iso-8859-1 ou utf-8
          WITHOUT DEVIATION FROM THE NORM, PROGRESS IS NOT POSSIBLE
          -Frank Zappa

          Commentaire


          • #6
            Hmmm.. y'a mieux à faire je pense les mecs Changer le charset est pas con cela dit. Et le base64... autant dire "qui en veux" ?

            Je me suis depuis penché un peu + dessus, mes recherches n'ont pas encore totalement abouties. En fait, tout dépend surtout du langage utilisé. Par exemple, pour du JS, y'a plusieurs techniques, mais en l'occurrence je cherche plutôt à crypter des sources de C, de python et de Bash.

            On m'a dit : ce sera toujours reversable. Oui. Ok. Mais bon, ça freinera ceux qui n'ont pas trop trop de connaissances. C'est déjà ça de pris.

            Cela pourrait faire l'objet d'un groupe de travail ? Qu'en pensez-vous ?

            Pour plus d'infos sur les "groupes de travail" rendez-vous ici :

            http://thehackademy.fr/showthread.ph...e-travail-Team

            sigpic

            Cyprium Download Link

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

            †|

            Commentaire


            • #7
              Oui oui je sais que base64 c'est... ^^
              Mais tu fais une fonction de cryptage a base de replace au pire

              Commentaire


              • #8
                C'est ton jour de chance (ou pas) SAKAROV, cela fait quelque temps que je travaille sur mon "Zephyr".
                En clair, c'est mon projet d'auto-scripting polymorphique intelligent de code source. Il utilise la méta-programmation modulaire et embarque un compilateur/décompilateur intégré.
                En bref: le système crypte la globalité de ton code source de manière bilatérale - 50% du code source crypté avec un algo 1 et l'autre 50% avec un algo 2 => sécurité calculatoire +++. Il y a une mutagenèse locale intégrée (horloge dynamique) qui rehash le code source toutes les x minutes afin de changer sa séquence de cryptage ; le code source est donc "mutant".
                Ensuite, il embarque une bibliothèque de fonctions (que j'ai affectueusement baptisé "Watchmen") qui analyse bit par bit le code source à chaque évènement détecté par l'event manager. Résultat, si un seul bit est altéré dans tout le code (ce qui indiquerait une tentative de reversing ou de modification), le noyau embarqué switch en décompilateur et corrompt tout le bloc mémoire en forçant un rewriting physique du code source. Au final, le code source est complètement inutilisable et impossible à reconstruire.
                En clair, et pour résumer: ton code source est crypté en polymorphe (et donc déjà pratiquement inviolable) et si quelqu'un veut le reverse, il est réécrit n'importe comment dans tous les sens => illisible, inutilisable, volatilisé.

                Je suis loin de l'avoir terminé hein, mais j'ai déjà pas mal avancé.
                Ex-membre Hackademiciens.

                Commentaire


                • #9
                  Yes MadHat, cela peut converger avec mon attente.

                  Je t'invites à exposer ton projet ici : http://thehackademy.fr/showthread.php?1446-Obfuscateur

                  Merci de détailler ton processus de manière plus scientifique afin que tout le monde (qui puisse être intéressé par le projet) puisse en comprendre les méandres sans avoir à te questionner intempestivement de questions inutiles.

                  En quel langage développe tu cette app ?

                  Bref, jette un coup d'oeil au topic ad hoc

                  Merci.
                  sigpic

                  Cyprium Download Link

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

                  †|

                  Commentaire


                  • #10
                    Ingénieux, ton application m'intéresse MadHatter.
                    L'as-tu terminé depuis le temps ?
                    ~ Yarflam ~

                    ❉ L'Univers se dirige vers son ultime perfection ❉

                    Commentaire


                    • #11
                      Perso moi je crypte pas mes codes sources et je le ferais pas par principe ^^' mais c'est vrai que je me suis déjà posé la question ... je crois que j'ai un ami qui l'avait déjà fait ... je vais voir avec lui si il peut pas m'expliquer rapidement

                      Commentaire


                      • #12
                        Hello,

                        J'ai dans mon code source des coordonnées géographique (j'utilise une google map) et je voudrais pas que des gens puisse me pomper tout mon boulot. Est ce que je peux faire quelque chose ?
                        Merci.

                        Commentaire


                        • #13
                          L'obfuscation d'un code source est extrêmement difficile a lire et a comprendre.

                          exemple pour du php j'utilise ca: http://fopo.com.ar/

                          Commentaire


                          • #14
                            Tu peux également demandé à des gens de faire progresser ton boulot, non?

                            Ensuite, si c'est un code compilé, à peu près 98% des personnes standards seront rien en faire de ton code, et les 2% restants sont assez compétents pour que même avec l'obfuscation, ils puissent traduire ton code (crois tu que certains bien connus n'ont pas déjà essayé avant toi ?).

                            Si tu as peur qu'on reprenne la base de ton code source pour une revente illégale, je ne vois qu'une licence pour te protéger un minimum...

                            Commentaire

                            Chargement...
                            X