The common way to do .NET assembly injection into an unmanaged process is by a BootStrap dll written in unmanaged C++, in which the CLR is initialized and used to load the .NET assembly. Here, what the injector has done is simple: CreateRemoteThread, and is capable to be implemented either in C++ or C#. However, the BootStrap dll seems to have to be unmanaged.
My question is: is there an approach to "skip" the BootStrap dll somehow to make the entire procedure fully managed? In other words, a managed method to load the CLR into the target process?
I have a vague impression about such a solution somewhere in the forum before, using ASM, whereas search has helped little so far. If anyone knows about any clue, thank you in advance!