Dieser Weg liegt Wahnsinn, ich weiß.Ein CLR-Host in einen laufenden Prozess einfügen - möglich?
Ich habe eine ausführbare Datei (der Quellcode, auf den ich keinen Zugriff habe), den ich über .NET erweitern möchte. Es ist eine native ausführbare Datei, also müsste ich einen CLR-Host injizieren, um dies zu tun. Meine Grundidee ist, scripting-ähnliche Funktionalität über eine .NET-Sprache (zum Beispiel C#) bereitzustellen und Hooks in der Ziel-Executable für die zu manipulierenden Skripte bereitzustellen und umgekehrt.
Ich weiß, ich muss verschiedene Techniken verwenden, um dies zu erreichen - DLL-Injektion, einige Laufzeit-ASM-Injektion, etc., aber was ich gerne wissen würde ist: Ist das, worüber ich rede, möglich? Besser noch - hat jemand so etwas schon mal gemacht?
Ich habe das noch nie gemacht, aber ich denke du bist auf dem richtigen Weg. Injizieren Sie eine DLL, die die CLR-Hosting-APIs verwendet, um die Arbeit zu starten. Ihre native DLL muss damit umgehen, alle Hooks dorthin einzubringen, wo Sie sie benötigen, aber es sollte keinen Grund geben, warum sie Ihre gehostete CLR-Bibliothek nicht für die eigentliche Arbeit aufrufen kann. –