Tom's Guide > Forum > Programmation > modifier une dll
Mot :    Pseudo :           
 

Bonjour à tous,
Je voudrais quelques renseignements dans le but de modifier une dll d'un programme libre de droit. Ce programme envoie des instructions via la dll à une interface branchée en usb et je voudrais modifier la dll pour faire fonctionner une autre interface branchée sur port parallelle. Mes connaissances en programmation sont assez minimes mais je suis assez motivé pour faire ca et je ne suis pas préssé plus que ca. Je voudrais donc savoir quel programme faut il utiliser pour décompiler la dll et avoir le code source et en quel langage sera t il ? Merci de vos conseils! A bientot

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Ca va être difficile :p

Pour décompiler la dll tu peux prendre Windasm, IDA... Ensuite tu vérifie si la dll n'a pas été packé, avec un-pack 2.3 par exemple.
Ensuite tu décompile.
Pour le recompiler tu peux utiliser FASM.

Mais tout sera en assembleur donc très difficile à comprendre, donc pour une modification ce sera très difficile surtout qu'il faut avoir un très bon niveau et avoir beaucoup de patience :/ et pour etre franc je pense que ce que tu veux faire est impossible.

Bon courage :p

Répondre à neo-57

Merci pour ta réponse.
Je voulais te dire que je ne me lancerai pas sur ca si je ne savais pas que ca serait possible. En effet, ca a déja été réalisé sur une ancienne version du logiciel. Donc je pense que c'est possible. Apparemment il ya deja des sujets abordés qui parlent de manip a faire en hexa puis en delphi. Bref ca doit pas etre évident. Ce n'est pas possible de décompiler la dll en c++ avec visual c++ ?

Répondre à nico1984

Non c'est pas possible de décompiler la dll avec vc++, tu peux juste voir les ressources eventuellement. Mais la je ne te suis pas trop... tu veux décompiler et retrouver le code source tel quel ? Car ca c'est impossible. Tu peux utiliser un soft de reverse engineering spécialisé pour essayé de l'avoir en c++ mais le résultat n'est pas très beau à voir... :/
Sinon le nom de la DLL c'est quoi ?

Répondre à neo-57

Alors pour te donner une idée, je te fais un copier coller d'un post d'une personne qui avait trouvé comment faire marcher une interface avec le logiciel mais cette interface est en usb pas en parallelle comme la mienne mais c'est pour te donner une idée de ce que je veux faire . Le nom de la dll c'est dashard.dll

"Comme je l'avais dit auparavent, j'avais remarqué que la dll d'origine
repondait a + de commandes que ce qui etait documenté. De plus, le logiciel
sunlite utilisait ces fameuses commandes non documentees pour identifier si
la DLL etait bonne ou pas.
J'ai finalement trouvé une solution tres simple au probleme :
la DLL que j'avais ecrite pour le logiciel fonctionnant tres bien pour les
commandes documentées, j'ai tout simplement redirigé les commandes que je ne
gerais pas vers la DLL officielle.
Pour etre plus precis : on edite la DLL d'origine avec un editeur Hexa pour
en changer le nom de la fonction (DasHardCommand) par exemple, on la renomme
en USBHardCommand
ensuite, on declare dans delphi la fonction USBHardCommand comme étant
externe et a prendre a partir de la DLL : USBHard.dll qui est en fait la DLL
d'origine renomée ainsi.
Ensuite, dans le source, je faisais un case pour matcher les commandes. Il m
a suffit d'y rajouter un else pour prendre en compte toutes les commandes
appelées par le logiciel mais que je ne connaissais pas et dans ce
cas, de retourner la reponse de l'appel a USBHardCommand. Comme ca, c'est la
DLL d'origine qui gere elle meme les commandes qui ne sont pas documentées
et qui ne sont pas utiles pour l'interface proprement dit.
"

Merci encore de ton aide

Répondre à nico1984

C'est deja plus claire maintenant :D
En faite comme la personne qui a fait son explication ci-dessus, tu peux juste utiliser un éditeur hexadécimal, pas besoin de compliquer. Donc pas besoin aussi de décompiler ; il faut juste rechercher les valeurs hexadécimal, mais ca c'est pas trop dur :p.

Répondre à neo-57

Utilise reshack si tu veux editer les images ou certais codes qui ont ete etablis dans la dll.

Répondre à Loucousz

Oui mais il te faut faire une autre DLL pour faire un wrapper.
Si tu as les sources (puisque c'est libre), il reste plus simple de modifier les sources et recompiler.

Répondre à CRicky
Tom's Guide > Forum > Programmation > modifier une dll
Aller à :

Il y a 1305 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens