Question

J'ai une application (fichier win32 exe) sans code source.

Est-il possible d'écrire une application C # et réutiliser une fonction dans ce fichier .exe win32?

Était-ce utile?

La solution

Vous pouvez exécuter

dumpbin.exe /exports [your-win32.exe]

et voir quelles fonctions il exporte. Ensuite, vous pouvez utiliser (quel que soit le C # ou équivalent) LoadLibrary () et GetProcAddress () pour appeler ces fonctions.

Bien sûr, vous devez connaître les signatures de ces fonctions afin de les appeler correctement; à-dire le nombre et ordre des paramètres, etc.

Autres conseils

Je ne sais pas si c'est ce que vous cherchez, mais si l'autre exe a une interface graphique, vous pouvez probablement faire des choses en envoyant des messages. Il suffit de lancer Spy ++, faites tout ce que vous voulez avec l'autre application, et regarder le journal lorsque vous avez terminé. Si aucun des contrôles spéciaux sont utilisés, vous pouvez utiliser cette interface en obtenant les poignées des commandes que vous voulez, et de les envoyer les messages appropriés. Si vous ne voulez pas l'utilisateur de savoir que vous utilisez l'autre application, vous pouvez l'exécuter sur un autre bureau.

Une autre option que vous pouvez exploiter est en cours d'exécution de votre propre fil à l'intérieur du processus de l'autre exe, et de communiquer à votre application dans l'une des différentes techniques disponibles IPC. De nombreuses questions ont été posées ici au sujet de l'injection de fil à distance, donc il suffit de regarder autour de lui.

Enfin, si vous êtes chanceux la fonctionnalité dont vous avez besoin est en fait sur l'une des DLL utilisées par l'exe, soit en tant que fonctions exportées ou une interface COM. Jetez un oeil à l'exécution en utilisant Process Explorer ou si, et si l'un des modules semble intéressant. En ce qui concerne elle va à l'aide d'autres modules, DLL sont évidemment beaucoup plus facile.

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