Comment patcher un executable quelconque ?

cs_hendrix Messages postés 65 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 18 novembre 2008 - 10 oct. 2003 à 13:02
cs_hendrix Messages postés 65 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 18 novembre 2008 - 16 oct. 2003 à 19:56
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

cs_darkstorm Messages postés 44 Date d'inscription dimanche 3 février 2002 Statut Membre Dernière intervention 22 mai 2006
14 oct. 2003 à 12:25
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+

..................................
0
LUDOWHEEL Messages postés 3 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 14 octobre 2003
14 oct. 2003 à 15:02
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
0
cs_hendrix Messages postés 65 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 18 novembre 2008 1
15 oct. 2003 à 12:48
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
0
LUDOWHEEL Messages postés 3 Date d'inscription mardi 14 octobre 2003 Statut Membre Dernière intervention 14 octobre 2003
15 oct. 2003 à 15:39
Si tu le souhaites , je peux t'aider dans ta demarche de gestion de fichier dans un fichier BPL.
Ludovic
0

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

Posez votre question
cs_hendrix Messages postés 65 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 18 novembre 2008 1
16 oct. 2003 à 19:56
Ah ben c'est très sympa !!

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

hendrix
0
Rejoignez-nous