Hola, hemos encontrado la solución a lo que buscabas, continúa leyendo y la hallarás un poco más abajo.
Solución:
¡Buena pregunta! No tengo mucha experiencia en esta pregunta específica, pero así es como comenzaría:
-
PE o ELF no crean código de máquina puro. También contiene información de encabezado, etc. Leer más: Escritura de datos personalizados en archivos ejecutables en Windows y Linux
-
Supongo que está buscando cómo el archivo ELF/PE contiene el código de la máquina, puede obtenerlo de esta pregunta (usando objdump): ¿Cómo extrae solo el contenido de una sección ELF?
-
Ahora, si desea saber cómo se genera la parte de contenido en primer lugar, es decir, cómo se genera el código de máquina, entonces esa es la tarea de la generación de código del compilador.
-
Pruebe algún editor de recursos como ResourceEditor para comprender el exe o simplemente ildasm.
PD: Estas son en su mayoría soluciones de Unix, pero estoy seguro de que PE debería estar haciendo algo fundamentalmente similar.
Creo que la mejor manera de abordarlo será primero intentar analizar cómo funcionan los PE/ELF existentes, básicamente ingeniería inversa. Y para hacer eso, la máquina Unix será un buen punto de partida. Y luego haz tu magia 🙂
No es lo mismo, pero una pregunta similar aquí.
Actualizar:
Generé un volcado de objeto a partir de un código c de muestra. Ahora, supongo que eso es lo que estás apuntando, ¿verdad? ¿Necesita saber si genera este archivo (a.out)?
https://gist.github.com/1329947
Eche un vistazo a esta imagen, toda una vida de código ac.
Fuente Ahora, solo para que quede claro, ¿está buscando implementar el paso final, es decir, la conversión de código objeto a código ejecutable?
Como en muchos de sus artículos, diría que el artículo de Matt Pietrek sobre los componentes internos de PE sigue siendo la mejor introducción al tema más de una década después de haber sido escrito.
He usado “Formato de archivo de Wotsit” durante años… desde los días de MS-Dos 🙂 y cuando era solo una colección de archivos de texto que podías descargar de la mayoría de los sistemas BBS llamada “The Programadores de juegos tipo de archivo enciclopedia”
Ahora es propiedad de la gente que dirige Gamedev.Net, y probablemente sea uno de los secretos mejor guardados de Internet.
Encontrará el formato EXE en esta página: http://www.wotsit.org/list.asp?fc=5
Disfrutar.
ACTUALIZACIÓN de junio de 2020: el enlace anterior parece estar ahora inactivo, encontré la página “EXE” que figura en esta página de archivo web del sitio wotsit: https://web.archive.org/web/20121019145432/http:/ /www.wotsit.org/list.asp?al=E
ACTUALIZACIÓN 2: mantengo la edición tal como estaba cuando agregué la actualización anteriormente, gracias a quienes querían editarla, pero es por una buena razón por la que la rechazo:
1) Wotsit.org puede volver a estar en línea en algún momento en el futuro, si realmente intenta visitar la URL, encontrará que no se ha ido, todavía responde, solo responde con un mensaje de error. Esto me dice que alguien está manteniendo vivo el dominio por alguna razón.
2) Los enlaces de archivo parecen estar un poco nerviosos, algunos funcionan, otros no, a veces parecen funcionar, luego, después de una actualización, no funcionan, luego vuelven a funcionar. Recuerdo por experiencia cuando wotsit todavía estaba en línea, tenían un código de detección de descarga/enlace muy extraño, y esto probablemente causó que archive.org obtuviera algunos resultados muy extraños, recuerdo que tomaron esta postura debido a la gran cantidad de Sitios de terceros que intentan sacar provecho de su éxito, haciéndose pasar por afiliados y luego enlazando directamente a wotsit desde un sitio infestado de anuncios.
Hasta que el dominio wotsit se elimine por completo de Internet y ni siquiera el DNS responda, entonces sería el momento de envolver todo en enlaces de archivo únicos, hasta entonces, esta es la mejor manera de mantener el enlace.
Puntuaciones y comentarios
Más adelante puedes encontrar las explicaciones de otros administradores, tú igualmente tienes la libertad de mostrar el tuyo si te apetece.