Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: Saber que ejecutable o lenguaje es. (Leído 2,453 veces)
|
|
Meta
|
Hola:
Haciendo un ejemplo tonto cualquiera sea con el VB .net o el C# 2010 Express. Creo un botón con un mensaje. Dentro del Form agrego un label y un botón que al pulsarlo muestre Hola mundo por poner un ejemplo sencillo.
¿Hay alguna forma de examinar con cual lenguaje se ha programado ese ejecutable .exe?
Se que puedo cambiar los textos con un editor hexadecimal, también puedo cambiar la versión y nombre de los botones y versiones del programa, cosas así. No se si habrá programa ya hechos para modificar o entender que se ha hecho con ese .exe o al menos hacer un programa nosotros mismo muy sencillo para detectar abrir un .exe y que sepa de qué lenguaje es, otro ejemplo, poner una imagen en el centro de un form1, cosas así.
¿Es posible?
Saludo.
|
|
|
|
|
En línea
|
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Descompilar decis vs, no se puede pero depende la interfaz grafica te podes dar cuenta a veces de q lenguaje usaron.
|
|
|
|
|
En línea
|
|
|
|
|
seba123neo
|
con el nombre de clases de las ventanas y el Spy++ o cualquier otro visor de ventanas.
|
|
|
|
|
En línea
|
Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo. Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
|
|
|
|
Meta
|
Supogamos que está hecho con C#. ¿Cómo lo puedo saber? Puede estar hecho con C++ o el VB .net.
|
|
|
|
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 77
|
"CREO" que cuando se programa algo en vb.net, el compilador lo pasa a C#, muchos de mis programas en vb.net cuando los descompilo me los muestra en C#, asi que es un poco dificil saberlo, no estoy seguro de lo que digo tampoco xD Saludos.
|
|
|
|
|
En línea
|
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Como lo descompilas? xD
|
|
|
|
|
En línea
|
|
|
|
|
|
|
SnakingMax
|
Te puedes dar cuenta si con el editor hexadecimal abres el ejecutable y hay llamadas a librerias propias de un lenguaje por ejemplo.
|
|
|
|
|
En línea
|
|
|
|
|
Meta
|
Lo que te refieres es el .net. Son las mismas en C# y VB .net.
|
|
|
|
|
En línea
|
|
|
|
|
Sauruxum
|
"CREO" que cuando se programa algo en vb.net, el compilador lo pasa a C#, muchos de mis programas en vb.net cuando los descompilo me los muestra en C#, asi que es un poco dificil saberlo, no estoy seguro de lo que digo tampoco xD Saludos.
Si no me equivoco, la cosa es que en .NET que trabaja con distintos lenguajes transforma el codigo que escribes en un cierto lenguajes a una especie de assembler que creo que se llama CLR ( common runtime language ), por lo que no podras saber viendo directamente los binarios si ha sido escrito en C# o VB.NET Pero creo que esto podria traer ventajas en la decompilacion. Saludos
|
|
|
|
|
En línea
|
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Creo q es el MSIL pero no se si tiene q ver
|
|
|
|
|
En línea
|
|
|
|
|
Sauruxum
|
Creo q es el MSIL pero no se si tiene q ver
Aja, si me equivocaba xD Si tiene que ver, ya que muchas funciones y operadores y todas esas cosas son comunes en los dos lenguajes, y al compilar te las transforma en eso que es comun, entonces no podras identificar con que lenguaje en especifico esta hecho a no se que quede algun tipo de registro especificamente. O que exista algo MUY especifico de cierto lenguaje, lo que dudo bastante. Saludos
|
|
|
|
|
En línea
|
|
|
|
43H4FH44H45H4CH49H56H45H
Wiki
Desconectado
Mensajes: 483
|
Para saber en que lenguaje fue creado un programa en general se puede utilizar PEiD-0.95, RDG Packer Detector v0.6.6 y otros. Los programas .NET (C# - VB) no son diferenciados, puesto que ni el mismo framework sabe en que lenguaje fue creado cuando los ejecuta.
Saluos!
|
|
|
|
|
En línea
|
 -R IP :0100 -A 100 2826:0100 MOV AH,09 2826:0102 MOV DX,109 2826:0105 INT 21 2826:0105 MOV AH,08 2826:0105 INT 21 2826:0107 INT 20 2826:0109 DB 'MI NICK ES CODELIVE.$' 2826:0127 -R BX :0000 -R CX :20 -N CODELIVE.COM -W
|
|
|
43H4FH44H45H4CH49H56H45H
Wiki
Desconectado
Mensajes: 483
|
Viendo un poco mas a fondo, si se puede saber en que lenguaje fue creado algún programa .NET (sea VB o C# que son los que probe) luego de desensamblarlo y generar un archivo .il el lenguaje puede ser identitficado, asi tb herramientas como reflector y similares pueden identificar lo mencionado. Saluos.
|
|
|
|
|
En línea
|
 -R IP :0100 -A 100 2826:0100 MOV AH,09 2826:0102 MOV DX,109 2826:0105 INT 21 2826:0105 MOV AH,08 2826:0105 INT 21 2826:0107 INT 20 2826:0109 DB 'MI NICK ES CODELIVE.$' 2826:0127 -R BX :0000 -R CX :20 -N CODELIVE.COM -W
|
|
|
|
[D4N93R]
|
Sí como dice CodeLive,
La cosa es que en realidad el framework nunca sabe a partir de qué lenguaje se generó el IL, porque en realidad no le importa. Lo que le importa es que el IL sea correcto.
Pero, como cada compilador de cada lenguaje está hecho de forma totalmente independiente, pequeñas diferencias se pueden notar desde un IL que venga de C# a un IL que venga de VB.Net.
Un saludo.
|
|
|
|
|
En línea
|
|
|
|
|
|