Pregunta:
¿Cómo debo intentar averiguar el lenguaje de programación que se utilizó?
asheeshr
2013-03-25 19:41:09 UTC
view on stackexchange narkive permalink

Tengo un archivo ejecutable y me gustaría averiguar en qué lenguaje de programación está escrito el código fuente. El primer paso sería usar un desensamblador.

¿Qué se debe hacer después de eso?

Además, leí que determinar qué bibliotecas se usan durante el tiempo de ejecución sería un buen indicador del lenguaje de programación que se está usando. ¿Cómo debo determinar qué bibliotecas se utilizan?

Posiblemente relacionado: [¿Qué sugerencias en el código de máquina me pueden indicar el compilador que se usó para generarlo?] (Http://reverseengineering.stackexchange.com/questions/11/what-hints-in-machine-code-can- point-me-to-the-compiler-which-was-used-to-gener) y [¿Qué es una firma FLIRT?] (http://reverseengineering.stackexchange.com/questions/175/what-is-a- coqueteo-firma /)
¿Cuál es el objetivo de? Las cosas pueden cambiar drásticamente de un sistema operativo a otro (y las herramientas también).
@Emmanuel Ubuntu
Puede utilizar otras herramientas de identificación del compilador: Categoría: Identificadores del compilador - Biblioteca de herramientas colaborativas RCE http://www.woodmann.com/collaborative/tools/index.php/Category:Compiler_Identifiers
Dos respuestas:
cb88
2013-03-25 20:03:31 UTC
view on stackexchange narkive permalink

En realidad, le sugiero que vea el ejecutable con un visor / editor hexadecimal. De esa manera, puede ver de inmediato si el compilador incrustó alguna cadena como sugerencias. También debe considerar que algunos lenguajes usan C como lenguaje intermedio. Un ejemplo de eso sería f2c, un compilador de Fortran 77 to C. Parece que f2c también vincula una biblioteca de soporte, por lo que debería buscarla.

En cuanto a determinar qué bibliotecas se usan en Linux, puede usar el comando ldd para binarios dinámicos y nm para estáticos para volcar los símbolos. También hay una pregunta relacionada con SO.

Aquí hay un interesante blog de un compañero miembro de RE sobre cómo el binario que tienes podría ni siquiera provenir de un compilador y cómo reconocer eso.

Buena respuesta, ¡se sorprendería de la frecuencia con la que funciona este enfoque de baja tecnología! Aparte de eso, incluso en el caso `f2c` probablemente pueda ver patrones puntuales utilizados por el convertidor para representar conceptos de Fortran o convertir de Fortran a convenciones de C.
Mick
2013-03-25 21:04:27 UTC
view on stackexchange narkive permalink

Hay varias herramientas que he utilizado:

  1. PEiD (PE iDentifier) ​​
  2. También he seguido esto guide y las firmas PEiD convertidas en firmas YARA y YARA
  3. TRiD también pueden proporcionar otra forma de identificar el compilador utilizado

También vale la pena mencionar que si envía un archivo a Virus Total, ejecutarán TRiD contra su binario.

Estas herramientas no siempre son definitivo, pero generalmente pueden darle el compilador correcto (y por lo tanto el idioma) que se utilizó.



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...