Está bien como un ejercicio de práctica
En la práctica, si no corre el código del huésped. No sería más fácil colocar nuestro código primero y luego relleno hasta equiparar el tamaño del ejecutable original, manteniendo las propiedades del archivo (Iconos y propiedades generales: como descripción, compañía, versión, etc.) y el TimeSpan intacto, tratando de que el código infeccioso pese lo menos posible, o en un caso más avanzado empacando nuestro código con las clases de compresión que brinda .Net y un modulo que sea capaz de descomprimir y ejecutar el código en tiempo de ejecución. Otra cosa, te diré un truco por hay en C++ creando una aplicación de Windows puedes borrar el código generado por el compilador para colocar tu código y se ejecutara sin ventanas de ningún tipo, en .Net también se puede hacer esto pero hay que seguir otros pasos, crea un proyecto de Console, te vas a las Propiedades del Proyecto y a la pestaña Aplicación donde colocaras Tipo de Aplicación: Aplicación de Windows Forms, y en la propiedad Objeto de Inicio: Sub Main, de está manera puedes crear un ejecutable que solo contenga el código sin más estorbos como la Consola o Windows Forms, finalmente una vez que lo generes puedes ahorrar algo de espacio usando alguna utilidad como ResourcesHack para borrar el icono, te digo esto porqué así ahorras mucho espacio que es algo critico a la hora de realizar procedimientos de este tipo. Espero que lo tomes ha bien lo digo porqué hay gente que se ofende cuando uno habla mucho jajajajajajaja por el contrario si le dedique tiempo ha escribir este testamento es porqué me llamaron la atención tus intereses...
En la práctica, si no corre el código del huésped. No sería más fácil colocar nuestro código primero y luego relleno hasta equiparar el tamaño del ejecutable original, manteniendo las propiedades del archivo (Iconos y propiedades generales: como descripción, compañía, versión, etc.) y el TimeSpan intacto, tratando de que el código infeccioso pese lo menos posible, o en un caso más avanzado empacando nuestro código con las clases de compresión que brinda .Net y un modulo que sea capaz de descomprimir y ejecutar el código en tiempo de ejecución. Otra cosa, te diré un truco por hay en C++ creando una aplicación de Windows puedes borrar el código generado por el compilador para colocar tu código y se ejecutara sin ventanas de ningún tipo, en .Net también se puede hacer esto pero hay que seguir otros pasos, crea un proyecto de Console, te vas a las Propiedades del Proyecto y a la pestaña Aplicación donde colocaras Tipo de Aplicación: Aplicación de Windows Forms, y en la propiedad Objeto de Inicio: Sub Main, de está manera puedes crear un ejecutable que solo contenga el código sin más estorbos como la Consola o Windows Forms, finalmente una vez que lo generes puedes ahorrar algo de espacio usando alguna utilidad como ResourcesHack para borrar el icono, te digo esto porqué así ahorras mucho espacio que es algo critico a la hora de realizar procedimientos de este tipo. Espero que lo tomes ha bien lo digo porqué hay gente que se ofende cuando uno habla mucho jajajajajajaja por el contrario si le dedique tiempo ha escribir este testamento es porqué me llamaron la atención tus intereses...