Título: Ejecución desde un byte array Publicado por: xoftfox en 17 Enero 2014, 02:59 am Saludos a todos.
Tengo una duda de si es posible ejecutar un arreglo de bytes, sin que sea necesario copiar el arreglo a un archivo en disco (ejecutable.exe). La unica manera que he encontrado ha sido esta: donde lo que se hace es llevar el arreglo de bytes a un ejecutable que se guarda en disco y desde ahi se ejecuta. Código: File.WriteAllBytes("yourApplication.exe", bytes); y luego con el Código: Process.Start() Se puede hacer sin llevarlo a disco ???? Título: Re: Ejecución desde un byte array Publicado por: xv0 en 18 Enero 2014, 16:41 pm Código
Imaginate de que esos dos opcodes fueran validos, quieres ejecutarlos directamente sin tener que copiarlos fuera no? Es eso lo que pretendes? Un saludo. Título: Re: Ejecución desde un byte array Publicado por: noele1995 en 18 Enero 2014, 18:09 pm Creo que lo que quiere es tener el archivo.exe en memoria sin que llegue a tocar el disco. Busca por Runpe si no me equivoco.
Título: Re: Ejecución desde un byte array Publicado por: Yoel Alejandro en 9 Febrero 2014, 21:40 pm Imagino que quieres crear un archivo ejecutable "al vuelo", es decir, que se ejecute pero sin volcar su contenido en disco.
¿Estás pensando en crear un código malicioso que se ejecute en un huésped sin dejar luego rastro alguno en él? Ah, jeje? Bueno, no se tu intención ni me hago responsable por ello ;), me limito a responder la pregunta. Lo que se me ocurre en este caso es un script que dirija la salida del compilador a un fichero temporal, lo ejecute y luego lo borre. Si estás en Windows, un sencillo script de batch para ello podría ser Código
Lo que "tmp_2667ttte55e" es por poner un nombre extraño para pasar desapercibido (o al menos intentarlo). Ahora, lo del volcado (dump) del fichero en disco es competencia del Sistema Operativo, quizá y como es tan rápido ni siquiera lo pase de la memoria primaria (RAM) al disco. No se cómo impedir el volcado, en Linux se puede montar un sistema de ficheros externo, y poner async en las opciones de montaje. En Windows ni idea, y con lo precario que es ese S.O. ni siquiera se si se puede. Para finalizar, el mismo script pero en bash (Linux) sería Código
donde no hace falta ".exe" final (viva UNIX :laugh:). Espero te de al menos una idea. |