El problema es que un proceso nativo o unmanaged no puede llamar directamente a un proceso managed, es decir, un proceso nativo no puede cargar dependencias generadas por el compilador de C# o cualquier otro lenguaje de la plataforma .NET, ya que es código intermedio que ha de ser interpretado o traducido en runtime.
Pero no todo está perdido, busca como cargar el CLR (Common Language Runtime) desde C++, no es mucho lo que requiere un par de llamadas y ya habrías cargado el runtime de .NET en tu proceso, y esa parte es la que se encargará de ejecutar el RAT o lo que quieras cargar de forma efectiva. Desconozco si después tendrás que modificar la lógica del RunPE, aunque en mi opinión no lo creo.
Saludos.
Pero no todo está perdido, busca como cargar el CLR (Common Language Runtime) desde C++, no es mucho lo que requiere un par de llamadas y ya habrías cargado el runtime de .NET en tu proceso, y esa parte es la que se encargará de ejecutar el RAT o lo que quieras cargar de forma efectiva. Desconozco si después tendrás que modificar la lógica del RunPE, aunque en mi opinión no lo creo.
Saludos.
claro si eso es lo que leía por eso preguntaba, bueno estaba pensando en usar un runPE en c# que cargue el rat desde la memoria. y Luego embeber ese runPE de .net dentro de mi programa c++
https://stackoverflow.com/questions/19477968/clr-hosting-from-managed-code
https://www.codeproject.com/Questions/756027/cplusplus-RunPe-working-with-managed-and-native-co
https://hackforums.net/showthread.php?tid=5546554
https://docs.microsoft.com/en-us/cpp/dotnet/mixed-native-and-managed-assemblies?view=vs-2019
https://www.youtube.com/watch?v=pCRBpkze1Ek
http://www.rohitab.com/discuss/topic/43071-loading-net-pe-into-memory-from-native-process/
https://social.msdn.microsoft.com/Forums/en-US/051d592a-76a8-4010-bfbe-e7cc9e4f8464/call-c-managed-dll-from-native-c-for-noobs?forum=vcgeneral
estuve mirando información al respecto me parece interesante para investigar luego, pero para hacer esto me parece que puedo hacer de esa manera.
Siempre puedes forzar a que tu ejecutable se compile a código nativo, una vez instalado en la máquina del cliente.
Revisa las órdenes de comando de "nGen.exe"
Revisa las órdenes de comando de "nGen.exe"
explicarías esto un poco más detallado digamos, la máquina del cliente cuál ??