De cette façon, il y a la folie, je sais.Injecter un hôte CLR dans un processus en cours - possible?
J'ai un exécutable (le code source auquel je n'ai pas accès) que je voudrais étendre via .NET. C'est un exécutable natif, donc j'aurais besoin d'injecter un hôte CLR pour le faire. Mon idée de base est de fournir une fonctionnalité de type script via un langage .NET (C#, par exemple) et de fournir des hooks dans l'exécutable cible que les scripts manipuleront, et vice versa.
Je sais que j'utiliserai différentes techniques pour y parvenir - injection de DLL, injection ASM d'exécution, etc., mais j'aimerais savoir: est-ce que ce dont je parle est possible? Mieux encore - quelqu'un a-t-il déjà fait quelque chose comme ça?
Je n'ai jamais fait cela, mais je pense que vous êtes sur la bonne voie. Injectez une DLL qui utilise les API d'hébergement CLR pour mettre les choses en marche. Votre DLL native devra gérer l'injection de tous les hooks là où vous en avez besoin, mais il ne devrait pas y avoir de raison pour qu'elle ne puisse pas appeler votre bibliothèque CLR hébergée pour le vrai travail. –