Comment crypter un exe?

amalsohail Messages postés 4 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 16 octobre 2008 - 16 oct. 2008 à 19:10
x1rt4m Messages postés 2 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 7 janvier 2009 - 7 janv. 2009 à 16:26
salut tout le monde, je suis débutante en info et jé besion de votre aide. Je dois crypter un exe et je ne sais pas comment, ça fait des jours que je cherche . merci pr votre aide

7 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
16 oct. 2008 à 19:23
Salut,

Ca sert à rien de crypter un exe.
Delphi, il me semble ne fonctionne pas sur une machine virtuelle comme dotnet?

Quelle est l'interet d'obfusquer un exe delphi?
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
16 oct. 2008 à 22:47
amalsohail : "j'ai besoin de ..."
nhervagault : "non tu n'as pas besoin de ..."

@nhervagault : tu ne sais pas utiliser un forum désolé.
@amalsohail : tu ne sais pas lire le règlement désolé.
0
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
16 oct. 2008 à 23:43
Hug tout le monde,
(La réponse à cette demande qui pourrai être proposée au finale m'interesse un chouilla beaucoup)
JulioDelphi je ne comprend pas trop ta réaction...
0
sp40 Messages postés 1276 Date d'inscription mardi 28 octobre 2003 Statut Contributeur Dernière intervention 3 juillet 2015 15
17 oct. 2008 à 08:58
Bonjour,

Julio : moi non plus a pas compris...
AmalSohail : Pourquoi ne pas simplement mettre une fenêtre de login ?
Simon
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Loda Messages postés 814 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 30 juillet 2009 3
17 oct. 2008 à 09:18
Salut,

je suis tenté de répondre bêtement à la question:

# pour crytper un exe, tu peux utiliser un trucs genre TrueCrypt. Cela marche très bien, et aussi avec des exe installé. (Par exemple, winamp et sa BD). Cependant, tu as besoin de trueCrypt pour lire l'exe. Sinon, un .rar avec un mot de passe est, généralement, considérer sur. (mais t'as besoins de winrar (et pui, rien de magique ici....;-) ))

ceci étant dit,
# Si tu veux un trucs du genre "demande de mot de pass" ou "acces limité", il te faut plus creusé du côté de la fenêtre de login (simple a mettre en place, mais facile a contourner). Cependant, cela ne vas pas crypter ton exe!

# si tu veux limité l'acces a certaine donnée, tu peux les crypter (ex: avec AES) lorsque tu les sauve sur le disque. Pas besoins de crypter l'exe entier et tes données sont protégées.

Note qu'aucune des deux méthodes n'empéchera qqun avec le mot de pass de faire des copie de l'exe en "clair".

Donc, si tu détails ton *but*, on pourra peut-être de donner une réponse plus ciblé.

a+

Loda
<hr size="2" width="100%" />Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
24 oct. 2008 à 14:22
Salut,

Juste pour répondre à la question :

[quote=nhervagault]
Delphi, il me semble ne fonctionne pas sur une machine virtuelle comme dotnet?
/quote

La réponse est : ça dépend. C'est comme pour le C++ : on peut compiler vers du natif ou vers du code intermédiaire dotnet.

Cela ne change pas grand chose au final : on peut "décompiler" l'un comme l'autre, quoique le langage intermédiaire dotnet ou Java se "décompile" mieux que le langage processeur.

Pour ce qui est du cryptage de .exe... Le format des .exe s'appelle le format PE et est détaillé dans un .doc qui se balade sur le net. Peut être ici.

Un .exe est avant tout composé de sections. Lors que windows démarre l'exe, il charge ces sections en mémoire, à des adresses précisées dans le .exe. Les sections ne peuvent être exécutées qu'à ces adresses.

Pour faire un programme de cryptage d'exécutable, il faudrait donc patcher l'exe en allongeant par exemple la dernière section, et en y plaçant un code de test de mot de passe et de décryptage (Non crypté bien sûr !), et spécifiant l'adresse de ce code comme point d'entrée de l'exe (L'adresse du point d'entrée est aussi spécifié dans l'exe). Au lancement, en cas de bon mot de passe, les sections effectives de l'exe seraient décryptées.

La difficulté technique majeure reste de ne pas crypter une section contenant des informations importante telle la table d'import, qui précise qu'elles dlls sont nécessaire et à chargées au lancement de l'exe.

Une deuxième difficulté consiste en la récupération des fonctions LoadLibrary et GetProcAddress. Ces fonctions sont nécessaires à la récupération des adresses des autres fonctions de l'OS. Il faudrait que ces deux fonctions soient dans la table d'import, ce qui n'est pas obligatoirement le cas d'un .exe quelconque. La création d'une deuxième table d'import est possible (Située elle aussi à la fin de la dernière section), mais il faudrait complèter les adresses dans la table originale avant l'appel du point d'entrée original de l'exe.

Niveau sécurité, je ne suis pas un spécialiste du cryptage, mais il me semble qu'avec un bon algo de cryptage, cette protection serait absolument inviolable autrement que par force brute : on pourrait déssassembler sans problème le code de décryptage, mais cela ne nous donnerait pas la clé.

Le décrypage se faisant en mémoire, il serait assez technique (Bien que réalisable) pour un pirate ayant le mot de passe de produire un fichier .exe correcte à partir de la version en mémoire. Pas à la portée de tout le monde quoi. C'est un avantage sur la version : un .rar + mot de passe : on ne peut pas obtenir de .exe sans mot de passe facilement.

Pourquoi n'ai je pas coder cette solution ? Un .exe crypté de cet manière serait pratiquement inviolable dans le sens ou sans le mot de passe, il serait impossible d'utiliser le .exe. La protection ultime ? Bin non du tout. Il suffit qu'un utilisateur "légal" diffuse son .exe et le mot de passe associé, et tout le monde pourra utiliser l'application...
0
x1rt4m Messages postés 2 Date d'inscription mercredi 7 janvier 2009 Statut Membre Dernière intervention 7 janvier 2009
7 janv. 2009 à 16:26
salut tous le monde,
si tu veux crypté un EXe comme n'import quel fichier ben! c autre chose mais si tu veux faire un paker alors là i je te consiel d'abord de savoir comment les packers fonctionnent, comme UPX, Armadillo, themida, Asprotect...
Un packer est généralement composé d'un loader et l'application crypté et bien sure compréssé (c'est le point for des packer contre les malwares) et bien sure changé l'EP (Entry Point), quand ont execute l'application packé c'est le loader qui s'execute le premier, il à la mission de decrypté l'application et la faire chargé en mémoire, par exemple comme UPX, le loader est entre la commande  PASHAD et POPAD, apré le POPAD il y a un long jump ramene au OEP (Original  Entry Point) bien sur cette adresse sera util pour changé l'EP de programme dumpé é oui !! unpacké un UPX n'est pas dure dans nos jours.
@rt15 dit:
 "La difficulté technique majeure reste de ne pas crypter une section
contenant des informations importante telle la table d'import, qui
précise qu'elles dlls sont nécessaire et à chargées au lancement de
l'exe."

correct me !
ont crypte pas l'IAT  mais ont change ces viritable address, c pour pour certain packet comme armadillo et thermida , UPX, ASProtect ont a besoin de restructuré la IAT de l'apllication dumpé "ImportRec" fera l'affaire pour vous, alors comme tu voie ça n'a rien a avoir avec la force de ton cyptage même si c de AES :)), mais si on parle de SMC alors la!! c une autre histoir ;).
0
Rejoignez-nous