LoadPE y RunPE todo lo que se deba

Iniciado por BET OVER, 25 Noviembre 2019, 21:33 PM

0 Miembros y 1 Visitante están viendo este tema.

BET OVER

https://365airsoft.com/en/questions/1276147/load-an-exe-file-and-run-it-from-memory
https://www.adlice.com/runpe-hide-code-behind-legit-process/
https://pastebin.com/Dzhad8rB
https://www.tek-tips.com/viewthread.cfm?qid=1323281
https://github.com/Zer0Mem0ry
https://github.com/Zer0Mem0ry/RunPE/blob/master/RunPE.cpp
https://github.com/aaaddress1/HellKitty-In-VC
http://www.rohitab.com/discuss/topic/31681-c-run-program-from-memory-and-not-file/
http://www.rohitab.com/discuss/topic/40160-inject-code-into-other-processes-using-pe-injection/
https://answers.microsoft.com/en-us/windows/forum/all/loading-an-external-exe-into-memory-and/1551abde-f1f8-478a-a01a-f285fa446701
https://www.dreamincode.net/forums/topic/29663-run-an-exe-from-memory/
https://www.dreamincode.net/forums/topic/185959-load-exe-from-byte-array-and-run-it-through-memory/
https://www.dreamincode.net/forums/topic/274684-how-do-i-run-an-exe-within-a-c-program/

hola foreros decidí registrarme para consultar algunas cosas porque busqué mucha información sobre la carga de server fud de un rat en .NET y considerando que soy un poco novato en el tema solamente quiero una rutina de carga de servers como para usar en una app de escritorio. mi pregunta es si mi app es en Visual Studio C++ y yo quiero cargar un server fud embebido en mi app osea ejecutarlo desde la memoria del proceso de la app y que se cargue el server.exe . la pregunta es cómo cargo ese server en .NET desde mi app en C++ usando un loadPE o RUNPE porque encuentro comentarios como este
Citar
Just a sanity check here. You realize:

1) A DLL is not ezecutable.
2) A .NET binary like that from compiling C# code is not native. You cannot directly execute code, and must pass it to a .NET VM implementation.
que me dan dudas de la lógica que se necesita para cargarlo
gracias por leer





kub0x

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.
Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate


Serapis

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"





BET OVER

Cita de: kub0x en 26 Noviembre 2019, 18:17 PM
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.

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.

Cita de: NEBIRE en 27 Noviembre 2019, 17:30 PM
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"




explicarías esto un poco más detallado digamos, la máquina del cliente cuál ??

--bl455--

Hola al foro hace ya años que no vengo por aca

con respecto a tu pregunta talvez este ṕroyeto te ayude:
   
    https://github.com/TheWover/donut

ya que carga ensamblados .net como shelldodes en memoria