Comment patcher un executable quelconque ?

Signaler
Messages postés
65
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2008
-
Messages postés
65
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2008
-
Bonjour, je cherche à faire un programme en delphi qui permette d'ajouter à n'importe quel exécutable une boite de dialogue avant le lancement de l'exe patché. Cette boite de dialogue demandera un mot de passe par exemple. De plus j'aimerais que cette manipulation soit assez subtile, à savoir que l'exécutable d'origine soit directement modifié.
J'aimerais aussi que dans le principe, l'exe une fois modifié ne "décharge" pas l'exécutable d'origine dans un autre fichier exécutable sur le disque le temps du lancement.

Bref ça revient à faire un programme comme "Private Exe" pour ceux qui connaissent.

Je pense qu'il doit falloir être doué en assembleur pour pouvoir avec delphi injecter la boite de dialogue dans l'exécutable à patcher et changer l'adresse de branchement du programme d'origine pour qu'il ne démarre réellement que suivant le passage réussi de l'authentification.

J'ai déjà trouvé des exemples Delphi (delphi.does.it) de ce type sur le net mais à chaque fois l'exe est bien patché, on a la boite de dialogue et quand on s'authentifie bien, et bien le programme d'origine est déchargé sur le disque en exe temporaire, il suffit alors de copier cet exe temporaire pendant son exécution pour faire sauter la protection et avoir l'e programme d'origine.

Merci de votre aide mais je pense que c'est un sujet pas facile.

hendrix

5 réponses

Messages postés
44
Date d'inscription
dimanche 3 février 2002
Statut
Membre
Dernière intervention
22 mai 2006

Alors pour ta boite de dialogue c'est raide et je te dis pourquoi, il y a 2 façons très faciles de craquer ton truc :

- BPX messagebox avec SOFTICE et tu noppes le call de ta boite et ploof c'est viré

- Le code doit être obligatoirement intégré ds ton *.exe, donc BPX getdlgitema et bpm sur l'adresse mémoire du string que tu entres, ensuite dès qu'il y la comparaison le code apparaît en clair ds la mémoire...

En quelques mots beaucoup d'efforts pour une protection (TRES) faible.

Je te conseille un cryptage PGP du fichier c plus efficace ;-)

A+

..................................
Messages postés
3
Date d'inscription
mardi 14 octobre 2003
Statut
Membre
Dernière intervention
14 octobre 2003

Bonjour,
En delphi, il faut pour cela utiliser les fichiers BPL, tu charges ton fichier BPL au demarrage et sur une classe du type TDIALFORM, tu crées une instance de n'importe fenetre de dialogue.
Je te conseille de créer une classe generique afin d'exploiter au mieux le polymorphismes. Entre, cela reduit la taille de ton executable et surtout évite toute forme de piratage puisque tu codes est crée à la volé... et il est partagée sur plusieurs fichiers... sert toi aussi d'un fichier ressource crypté.

bonne journée

Ludovic
Messages postés
65
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2008
1
Merci à tous pour votre réponse.

Disons qu'en fait je ne cherche pas un niveau de sécurité exceptionnel comme le laisse penser darkstorm.

Je cherche à ajouter une boite de dialogue en "entrée" d'un exécutable quelconque. Cette boite de dialogue peut permettre l'authentification par exemple et éventuellement des actions de type client serveur pour suivre l'utilisation du logiciel patché par ce "futur" (enfin j'espère !) programme.
La probabilité que les utilisateurs concernés par l'application utilisent softice est nulle.

Pour l'utilisation des fichiers BPL etc etc... préconisé par Ludovic, j'avoue être un peu léger en programmation pour arriver à comprendre ce que tu proposes mais je vais m'y pencher !!!

Donc affaire à suivre et encore merci pour les pistes que vous me donnez.
Bonne journée.
hendrix
Messages postés
3
Date d'inscription
mardi 14 octobre 2003
Statut
Membre
Dernière intervention
14 octobre 2003

Si tu le souhaites , je peux t'aider dans ta demarche de gestion de fichier dans un fichier BPL.
Ludovic
Messages postés
65
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
18 novembre 2008
1
Ah ben c'est très sympa !!

Faut pas que ça te prenne de temps et je t'en remercie d'avance !

hendrix