Partage
  • Partager sur Facebook
  • Partager sur Twitter

Crypter un .exe

    22 août 2009 à 0:22:26

    Salut,

    Voila je cherche a crypter un fichier exécutable. D'après ce que j'ai pu comprendre voila comment ça fonctionne :
    -Test.exe qui est le fichier a crypté
    -Une entete = Entete.exe
    --->Decrypte le fichier
    --->lance le fichier decrypter
    -Un programme qui crypte = Crypte.exe
    --->Crée une copie de Entete.exe
    --->Ecrit Test.exe a la suite de la copie d'Entete.exe

    De ce fait lorsque l'on lance la copie d'Entete.exe, la copie va être decrypté et lancé.
    J'ai tenter de réaliser sa a coup de fread,fwrite,fseek mais bon, le exe final me donne un joli

    Nom de la commande ou de fichier incorrecte 
    Impossible de charger le support IPX/SPX VDM
    Programme trop grand pour tenir en mémoire


    :lol:

    Si vous avez a disposition une source plutôt simple d'un crypter d'exe je suis preneur ^^ , et si ce que j'ai d'écrit plus haut n'est pas la bonne méthode alors comment faire ?

    Merci d'avance ^^ .
    • Partager sur Facebook
    • Partager sur Twitter
      22 août 2009 à 14:59:13

      Bonjour,

      Tu peut utiliser l'opérateur XOR présenter dans un tutoriel (je sais plus lequel).
      • Partager sur Facebook
      • Partager sur Twitter
        22 août 2009 à 19:02:22

        Oui c'est ce a quoi j'ai penser mais le probleme n'est pas la, c'est plutot comment faire pour que mon programme crypté puisse quand meme se lancé ^^ .
        • Partager sur Facebook
        • Partager sur Twitter
          22 août 2009 à 20:09:19

          Je vois pas trop l'interet de crypter un .exe :-° .
          A mon avis, il faut t'y prendre avec 3 programmes :
          1 - tu compile normalement le programme que tu veut crypter.
          2 - tu crée un programme de crypage qui ouvre le .exe en lecture binaire et la tu applique ta fonction de crytage pour crypter le fichier.
          3 - tu crée un dernier programme avec la fonction de décryptage dans lequel tu ajoute le .exe en temps que ressource à ajouter au programme. Ainsi il te suffira de décrypter le programme en mémoire puis de le lancer en temps que nouveau processus (la t'aura besoin des API windows si tu utilise windows par exemple). Tu peut aussi stopper le programme de décrytage sans perturber le programme décrypté, comme le processus décrypté est lancé est devenu indépendant du premier.
          • Partager sur Facebook
          • Partager sur Twitter
            23 août 2009 à 17:54:51

            Et bien l'interet est de protégé son .exe ^^ .
            Tu as bien raison il faut effectivement 3programmes
            Le exe a crypter
            Le stub a injecter dans l'exe
            Et le loader qui injecte le stub dans l'exe ^^.

            J'ai compris qu'il fallait récuperer les informations du PEheader (ce qui n'est pas un probleme) parcontre ce qui pose probleme c'est de savoir ce qu'il faut faire afin d'allouer un espace sufisant au stub dans le exe a crypter.
            Egalement comment modifier l'entrypoint du exe etc...
            Sur ce coup je seche completement :s .
            • Partager sur Facebook
            • Partager sur Twitter
              23 août 2009 à 18:09:54

              Bah soit tu decrypte petit a petit l´exe pour le lire automatiquement (packing), comme tu le devine c´est completement couillion et on trouve plus ou moins vite comment l´unpacker (je suis encore novice dans ce domaine mais c´est possible),

              Soit tu le crypte via un logiciel et il te faut une cle pour l´ouvrir (pgp et autres )mais je voit pas trop l´interet non plus...
              • Partager sur Facebook
              • Partager sur Twitter
                23 août 2009 à 18:19:24

                Citation

                Et bien l'interet est de protégé son .exe


                Proteger de quoi ? des antivirus ? o_O ya que des virus qui font ça je crois.
                De toute facon dès que quelqu'un cherche à faire des trucs pas net, ça se voit ;)

                Le mieux à mon avis c'est de garder ton .exe crypté à part, et de le faire décrypter/éxecuter par un autre :)
                • Partager sur Facebook
                • Partager sur Twitter
                  23 août 2009 à 18:24:26

                  Citation

                  ya que des virus qui font ça je crois.


                  Les protections des jeux/logiciels également, mais quand tu voit le nombre de logiciels dispo en torrent, ca te donne une idée sur la fiabilité de la technique...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    23 août 2009 à 18:28:25

                    Citation : cendre

                    mais je voit pas trop l´intérêt non plus...



                    +1 Je vois pas trop l'intérêt d'un tel système
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      23 août 2009 à 18:37:38

                      si ça peux en avoir un, si il veux se proteger des cracker newbies qui cherche je ne sais trop quoi je ne sais trop ou pour faire n'importe quoi

                      tu peux essayer de le compresser UPX, ... , ça masquera certain info utile au cracker (si il y connais pas grand chose) mais ça se detecte très facilement avec un analyseur de code qui vas te dire en quoi et programmer ton application, te dire le mode de compression ...

                      je n'en dirais pas plus, si les modo estime que je suis a la limite de la légalité, je leurs demande de supprimer mon post, merci d'avance
                      • Partager sur Facebook
                      • Partager sur Twitter
                        23 août 2009 à 18:41:25

                        Citation : cendre

                        Citation

                        ya que des virus qui font ça je crois.


                        Les protections des jeux/logiciels également, mais quand tu voit le nombre de logiciels dispo en torrent, ca te donne une idée sur la fiabilité de la technique...



                        Oui mais les jeux/logiciels cryptent normalement que quelques fonctions sujetes à être crackée (et encore c'est meme pas sur !), mais pas tout le programme en tout cas.
                        De toute facon peu importe le programme se trouvera bel et bien décrypté en mémoire pour être éxécuté, et il apparaitra dans la liste des programmes en cours comme tout les autres, un crackeur n'aura pas de mal à le trouver et à le charger dans son débuggeur/désassembleur pour l'étudier, c'est pour cela que ce que TeKilla veut faire n'a aucun sens.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          23 août 2009 à 18:49:14

                          cdd59554 a bien résumé, ce que je pense aucun intérêt puisque l'exe se trouvera bien décrypter a un moment donner.
                          Pour ce qui est de la compression UPX, tu dois pouvoir la contourner sans trop de mal.
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            23 août 2009 à 18:57:19

                            @bedwynn: avec un decompresseur UPX :lol:

                            en même temps, si tu vois que ton programme est pris d'assaut par les crackeurs, prends ça pour une belle réussites, ton programme doit vraiment etre bien pour que des genie de l'informatique (appelons un chat un chat) passe leurs soirée a essayer de cracker ton appli, si ça n'en vallais pas le coup il ne le ferai pas ;)

                            pour revenir au sujet, je n'en sais absolument rien, ça ne reduirais pas le temps de réaction de ton appli ? puisuqe le PC devrai decrypter les donnée avant de les interpréter
                            • Partager sur Facebook
                            • Partager sur Twitter
                              23 août 2009 à 18:59:48

                              @graphiks: je sais bien, c'était juste par dire le nom (et en cherchant 30s sur google, tu trouves pas mal de chose a ce sujet)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                23 août 2009 à 19:01:06

                                Si tu cryptes un exe et l'inclus dans un autre, le code pour le décrypter sera inclus dans cet exe.
                                Donc bon, y'a aucun moyen d'avoir une protection absolue :)
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  23 août 2009 à 22:26:12

                                  Et bien il s'averent que j'ai un programme personnelle que je fais circuler a certaine connaissance qui c'est retrouver cracker entre les mains de vilain monsieur :'( . Alors pour la prochaine version j'essaye de mieux le sécuriser, pour sa je penser a crypter l'exe, j'ai penser a UPX mais bhon, en 2min maxi il est decompresser :p.
                                  Pour l'utilisation d'autres packer et bien il s'avere que mon exe crypter se retrouve detecter comme un virus c'est pour sa que j'ai decider de faire mon mien ^^.

                                  Et puis pour l'histoire du debuger, il "suffit" de mettre un code anti debugger un peu avancé (j'entend par la avec de l'asm) et sa devrais deja stopper 50% des cracker newbie :p .

                                  Comme tu le dit nono212, il n'y a aucun moyen d'avoir une protection fiable a 100% (quoique je connais un amis qui a filer son prog sécuriser sur un forum de hacker avec des tete en programmation et aucun n'a reussi a faire quelque choses mais faut avouer qu'il y est aller fort dans la protection ^^ ).

                                  Sinon pour ceux que sa interesse j'ai trouver une source qui permet de choper les informations PE d'un fichier ici.

                                  Avec la doc que j'ai pu trouver je sais qu'il faut se servir de certaine de ces infos pour pouvoir injecter sont stub a la bonne place et pouvoir crypter les bonne partis du exe d'origine :) .
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    25 août 2009 à 19:35:17

                                    Alors alors, nouvelle :

                                    Je récup maintenant toutes les infos sur le PEHeader:
                                    -Entrypoint
                                    -Sections
                                    -Import tables etc...

                                    j'ai donc tout ce qu'il faut pour travaillez (même mon cerveau ! :o ).
                                    J'aimerais cependant savoir si l'un de vous aurait une idée sur la façon de crée une nouvelle section dans un exe ? Cette section me permettra d'ajouté mon stub(loader) a l'intérieur puis de définir l'entrypoint sur l'adresse de cette section, je pense que c'est la bonne méthode :D .
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      25 août 2009 à 19:50:02

                                      Tu crée un tableau statique de la taille de ton programme crypté avec des données bidons que tu décrypte puis que tu éxécute. Sauf que tu compile le programme sans le lancer pour eviter d'éxécuter les données bidons. Et via un autre programme tu remplace la section de données bidon par le programme crypté. J'espère que ca fonctionnera. Par contre faut etre sur de ce que tu fait pour pas faire planter le systeme ;)
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        25 août 2009 à 20:20:41

                                        D'abord merci cdd59554 (mais aussi les autres biensur ^^ ).

                                        Si j'ai bien saisi, c'est bien ce que je veut faire sauf qu'au lieu de prendre un programme bidon je prend mon programme, je crypte certaine sections, je crée un section, j'injecte mon loader dans cette section, je met l'entrypoint sur ma nouvelle sections.

                                        donc apparemment c'est juste :D .

                                        Maintenant il va falloir que je crée cette nouvelle sections donc :
                                        -Je récupère la dernière sections, sa taille et son adresse
                                        -Je crée la nouvelle section a la suite de la dernière
                                        -Je lui donne un nom
                                        -J'écris mon loader dans cette section

                                        Maintenant le soucis est que je sais pas comment crée une section avec les paramètre que j'ai :( .
                                        Y'a t-il une fonction qui permette de crée sa ?

                                        voila a quoi ressemble ce qui me permet de choper les infos sur les sections :
                                        PIMAGE_SECTION_HEADER Section;
                                        					  Section = (PIMAGE_SECTION_HEADER)IMAGE_FIRST_SECTION(pHeader);
                                        					  for(int i = 0; i < NbrSections; i++)
                                        					  {
                                        						  strcpy( (char *)PeSect[i].NameSection, (const char*) Section[i].Name );
                                        						  PeSect[i].VirtualSize		=		Section[i].Misc.VirtualSize;
                                        						  PeSect[i].VirtualOffset	=		Section[i].VirtualAddress;
                                        						  PeSect[i].RawSize			=		Section[i].SizeOfRawData;
                                        						  PeSect[i].RawOffset		=		Section[i].PointerToRawData;
                                        						  PeSect[i].characteristic	=		Section[i].Characteristics;
                                        					  }
                                        


                                        J'ai également vu quelque part qu'il fallait vérifier l'alignement des sections ou quelque chose ainsi, quelqu'un saurait m'apporter plus d'explication ?

                                        *Edit*

                                        Voila un lien que j'ai trouve expliquant la démarche a suivre pour ajoutez une section :), sa peu toujours servir ^^ .
                                        (P.S: C'est vers la fin)


                                        *Edit 2*
                                        J'y suis presque :D j'arrive a ajoutez ma sections meme si elle n'est pas la ou elle devrais mais je reglerais sa demain :p . Je vais me coucher il est quand meme 4h10 :lol: .
                                        ++
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          26 août 2009 à 3:34:48

                                          Citation : TeKilla

                                          Et puis pour l'histoire du debuger, il "suffit" de mettre un code anti debugger un peu avancé (j'entend par la avec de l'asm) et sa devrais deja stopper 50% des cracker newbie :p .



                                          Des crackers newbies ne feront surement rien à ton programme sauf le faire planter parce que pour réussir à cracker quelque chose faut être fort en asm et peu de newbies font de l'asm.
                                          De toute façon les désassembleur sont capables de passer presque toute les protections, regarde tous les logiciels et jeux vidéos crackés de disponible sur internet.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 août 2009 à 4:06:58

                                            D'accord avec toi Beanman mais bon, mon logiciel est en faite attaquer par d'autres créateur de logiciel qui disont n'aime pas la concurrence :lol: . Parmi eux des doué et d'autres qui le sont moins, en cryptant mon exe je vais déjà éliminer 65% des prétendant c'est une bonne chose :p .
                                            Après c'est sur, aucune protection n'est infaillible (même si certaine le sont presque ^^ ).
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              26 août 2009 à 10:07:36

                                              [plus_ou_moins_HS]

                                              Citation : cdd59554

                                              De toute facon peu importe le programme se trouvera bel et bien décrypté en mémoire pour être éxécuté, et il apparaitra dans la liste des programmes en cours comme tout les autres, un crackeur n'aura pas de mal à le trouver et à le charger dans son débuggeur/désassembleur pour l'étudier, c'est pour cela que ce que TeKilla veut faire n'a aucun sens.


                                              Ah ? Comment ce fait-il alors que personne n'arrive à "voir" le code exécutable de "skype" ? :-°

                                              Voici comment il fonctionne, d'après ce qu'on m'a dit (je tiens à le préciser quant même, je ne suis pas allé vérifier...)
                                              - Le ".exe" contient une toute petite partie "en clair", le reste est chiffré.
                                              - Lors du lancement du programme, cette toute petite partie de code s'exécute afin de récupérer sur Internet, par liaison sécurisée, une clé de déchiffrement pour le reste du code.
                                              - Le reste du code est donc déchiffré, puis exécuté.
                                              Il n'est malheureusement pas possible (enfin, apparemment) de lire ce code déchiffré... ni la clé de déchiffrement.

                                              De plus, "skype" envoie (-enverrai ? :euh: -) des données sans interruption, même lorsqu'il n'en a apparemment pas besoin. Il n'est pas interdit dans moult entreprise pour rien...! :-°

                                              Bon, je me répète, mais je tiens ces infos de ouïe-dire... Toutes informations complémentaires, ou même contradictoires sont les bien-venues !

                                              En attendant, si ça peut donner des idées à TeKilla pour le chiffrement de son ".exe"... ;)
                                              [/plus_ou_moins_HS]
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Cuicui.
                                                26 août 2009 à 11:21:16

                                                le problème c'est que l'OS charge tout l'executable en mémoire pour le lancer. Et il doit être décrypté à ce moment. Il suffit pour le cracker de regarder dans la mémoire le contenu du programme. Mais après, tu te retrouve au mieux avec de l'ASM, donc pour faire un crack, ca peut encore aller parce que en général seule la partie à cracké est cryptée, mais sur un soft bien lourd comme Skype, je vous dis pas la galère que ca doit être pour ne serait-ce que savoir ce qu'il envoi.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Anonyme
                                                  26 août 2009 à 13:14:55

                                                  Pour savoir ce que Skype envoie, il suffit de sniffer sa carte réseau ;)
                                                  De toute manière, a quoi bon cracker Skype (surtout que je vois pas ce qu'on peut cracker Oo)
                                                  @+
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    26 août 2009 à 13:58:04

                                                    Citation : youyou

                                                    Pour savoir ce que Skype envoie, il suffit de sniffer sa carte réseau ;)
                                                    De toute manière, a quoi bon cracker Skype (surtout que je vois pas ce qu'on peut cracker Oo)
                                                    @+



                                                    Si personne ne sait ce qu'il envoi exactement, c'est probablement que les paquets sont cryptés :P.
                                                    Quant au 'crack' de Skype, c'est pas utile au sens d'un programme payant sécurisé, mais plutôt au sens vol d'algorithmes/chopper la clé et la méthode de cryptage des données/trouver le protocole de transmission pour faire un équivalent gratuit (on peut aussi sniffer les paquets)
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Anonyme
                                                      26 août 2009 à 14:31:49

                                                      Citation : Gigotdarnaud

                                                      Si personne ne sait ce qu'il envoi exactement, c'est probablement que les paquets sont cryptés :P.


                                                      si les paquets sont crypter, il "suffit" de mettre en place une attaque MitM... Mais je ne pourrais pas dire si le jeu en vaut la chandelle ^^

                                                      Citation : Gigotdarnaud

                                                      pour faire un équivalent gratuit


                                                      Mais Skype est gratuit...
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        26 août 2009 à 16:27:02

                                                        Citation : youyou

                                                        Citation : Gigotdarnaud

                                                        pour faire un équivalent gratuit


                                                        Mais Skype est gratuit...


                                                        A mon avis il voulait dire open source pour faire profiter à tout le monde des fameux algorithmes
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          26 août 2009 à 19:29:09

                                                          Oui, Open Source effectivement, petit lapsus.
                                                          De toute façon, aucune méthode n'est infaillible, avec du temps, de la motivation, les moyens et les compétences on peut venir à bout de toutes les sécurités informatiques de ce genre.
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            26 août 2009 à 20:10:21

                                                            N'étant plus un utilisateur de skype et ne m'y intéressant pas trop je ne savais pas que les packet étais crypté :p . L'idée d'une clef de décryptage par internet est vraiment pas mal mais je ne pense pas avoir les compétences ni le temps pour mettre sa en place lol.

                                                            Merci Cuicui73 pour cette explication, cela confirme que je m'y prend bien pour le moment :D .

                                                            Voila ou j'en suis :
                                                            -Création d'une nouvelle section
                                                            -Cryptage d'une section
                                                            Il ne me reste qu'a changer l'entrypoint et injecter le code permettant de décrypter l'exe en mémoire, ensuite pourquoi pas un anti-debugger,checksum etc... ^^ .

                                                            J'ai cependant une petite question, une fois que je rajoute ma section voici ces caracteristique :
                                                            -- Info PEHeader 'Test.exe' :
                                                                    -> EntryPoint : 0x0
                                                                    -> Sections   : 6
                                                                    -> ImageBase  : 0x400000
                                                                    -> ImageSize  : 0x1000
                                                                    -> SAlignment : 0x1000
                                                                    -> FAlignment : 0x1000
                                                            
                                                            -- Section : .idata
                                                                    -> Virtual Size         : 0x1339
                                                                    -> Virtual Address      : 0x75000
                                                                    -> Size Of Raw Data     : 0x2000
                                                                    -> Ponter To Raw Data : 0x52000
                                                                    -> Characteristics      : c0000040
                                                            
                                                            
                                                            -- Section : .TeKilla
                                                                    -> Virtual Size         : 0x586f52
                                                                    -> Virtual Address      : 0x0
                                                                    -> Size Of Raw Data     : 0x1000
                                                                    -> Ponter To Raw Data : 0x0
                                                                    -> Characteristics      : e0000020


                                                            Comme vous pouvez le voir il la se faut encore changé l'entrypoint et la section qui est ajoutez, l'est en fin après .idata mais ce qui me chiffonne c'est sa :
                                                            -> Virtual Address      : 0x0
                                                            -> Ponter To Raw Data : 0x0

                                                            Pour la nouvelle section .TeKilla j'ai ces deux parametre qui sont nulle, es-ce normal ? :euh:

                                                            *EDIT*
                                                            J'ai regler le probleme, une histoire de -1 dans un tableau qui ma bien fait courir :lol: .
                                                            L'entrypoint est modifier sans soucis, reste a injecter mon stub dans la section :) .
                                                            Je vois beaucoup dire qu'il est mieux de faire son stub en ASM or je ne sais que lire des petit code d'asm basique :( , quelqu'un saurait me conseiller ? Merci.
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Crypter un .exe

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown