Pregunta

Dado un ejecutable que se compila desde C para ejecutarse en Solaris, ¿es posible determinar qué compilador se usó para compilar el ejecutable incompleto asociado?

No puedo ver nada al usar las cadenas o el comando de archivo, y magic no parece contener nada específico.

¿Los compiladores generalmente ponen una huella digital en sus archivos de salida ejecutables?

saludos,

¿Fue útil?

Solución

Si el ejecutable no está eliminado, intente / usr / ccs / bin mcs-p Esto usualmente mostrará el compilador, el enlazador y todos los archivos de encabezado utilizados

Otros consejos

Sí, IDA es genial para esto. Utiliza una tecnología llamada FLIRT .

PEID hará el truco. En general, funciona simplemente genial. Obviamente, PEID es una herramienta de Windows, pero no debería importar y debería mostrarle al compilador (a veces incluso información específica de la versión)

Cree pequeñas aplicaciones de prueba con cada compilador que está intentando identificar. Luego mire los resultados en un editor hexadecimal e intente encontrar patrones. Puede llegar a ser realmente obvio, por ejemplo, " Rich " firmas del enlazador de Microsoft.

No despojado:

$ cc -O hola.c

$ file a.out

a.out: ELF de 32 bits MSB ejecutable SPARC32PLUS Versión 1, V8 + Requerido, enlazado dinámicamente, no eliminado

$ strings -a a.out | grep cc

/opt/solarisstudio12.3/prod/bin/cc -O hola.c

$ dwarfdump -i a.out | grep compile_o

DW_AT_SUN_compile_options Xa; O; R = Sun C 5.12 SunOS_sparc Patch 148917-07 2013/10/18; backend; raw; cd;

Despojado:

$ strip a.out

$ file a.out

a.out: ELF de 32 bits MSB ejecutable SPARC32PLUS Versión 1, V8 + Requerido, enlazado dinámicamente, despojado

$ strings -a a.out | grep cc

(ninguno)

Visual Studio y GCC normalmente siguen diferentes rutinas de inicio (que llaman main). Eso tal vez una pista. Aunque no sé de los demás. Para dlls, no puedo pensar en algo similar en mi cabeza.

Los compiladores generalmente agregan su propia firma " " " Como texto plano en los archivos compilados. Puede usar una herramienta como cadenas para suspender el texto sin formato.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top