Question

J'ai une application MFC qui m'a donné (sans le code source) qui ouvre une fenêtre avec un bouton « Update », qui effectue alors une mise à jour très longtemps après avoir été cliqué.

Je voudrais modifier le programme de sorte que lorsque la fenêtre est créée (ou ailleurs, comme DoModal), un message est envoyé au programme pour faire penser que le bouton a été pressé.

Je suis en train de jouer autour avec été pendant un certain temps dans Ida Pro et OllyDbg en vain. Je regardais peut-être en utilisant PumpMessage, mais cela n'a pas apporté de succès.

Un conseil?

Était-ce utile?

La solution

Si vous n'aimez pas l'idée d'utiliser un programme « macro » secondaire, vous pouvez patcher le binaire pour appeler le gestionnaire BM_CLICK du bouton du programme original. Si vous pouvez trouver un peu d'espace pour l'appel (5 octets minimum sans arguments), vous pouvez le faire avec OllyDbg seul (après avoir modifié le code, sélectionnez-le et sélectionnez « Copier exécutable » -> « Sélection » du clic droit m e n u). Dans le cas contraire, vous devrez créer une nouvelle section de code avec un éditeur de PE (par exemple LordPE ou outils PE) et d'ajouter votre code là (en général, vous aurez envie de changer un appel dans le programme à un saut à votre section, où vous effectuer l'appel original et l'appel au gestionnaire de clic du bouton, puis revenir en arrière à l'ancienne position après votre saut patché).

Autres conseils

Il y a quelques façons de le faire en utilisant des techniques d'automatisation des tests, mais le plus simple est d'obtenir simplement la poignée de fenêtre pour le bouton que vous voulez et l'envoyer un message BM_CLICK . Cela suppose que vous avez une connaissance de C / C ++ sous Windows. Dans le cas contraire, il existe d'autres moyens utilisant .NET ou d'autres technologies. Je ne suis pas au courant de ida-pro ou ollydbg.

Voir ce module Perl win32 :: guitest il pourrait vous aider à faire this.you peut écrire avec un script perl et l'intégrer dans votre programme. ou vous pouvez utiliser l'api win32 qui enveloppent vos besoins requis et l'utiliser.

Il suffit de créer un 2ème programme qui sera le déjeuner et envoie un clic de souris à l'aide SendInput (...)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top