elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  ¿Cómo descopilo esto?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo descopilo esto?  (Leído 2,908 veces)
kaiserdj

Desconectado Desconectado

Mensajes: 12


Ver Perfil
¿Cómo descopilo esto?
« en: 26 Marzo 2016, 10:58 am »

Buenas, llevo bastante tiempo intentando saber que diferencia hay entre 3 versiones distintas(de tres años distintos) de un exe, para poder crear una versión para este año.

Carpeta MEGA: https://mega.nz/#F!HYJwCAxB!DYyRulsk65iwlsJHmQOs1w

Me podríais ayudar? Muchas gracias
En línea

arget

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: ¿Cómo descopilo esto?
« Respuesta #1 en: 26 Marzo 2016, 14:02 pm »

Podrías ir a la página del programa y ver el típico archivo changes.txt que explica los cambios que efectúa en cada versión. Claro que no siempre lo escriben... en ese caso lo lógico sería desensamblar y mirar el código en ensamblador, si no sabes ensamblador utiliza un descompilador, que lo que hace es primero desensamblar y este código traducirlo a las instrucciones más probables en el lenguaje para el que está diseñado el descompilador (si es un descompilador para C lo hará en C). El problema es que cada lenguaje se traduce a ensamblador de manera distinta, un código ensamblador proveniente de C no tiene el mismo método para por ejemplo entrar a una función o salir de ella que el que utiliza uno de (yo que sé) Lisp.
De modo que debes identificar en qué lenguaje puede estar hecho y descompilarlo, si utilizas un descompilador incorrecto el código será imposible de leer. Sin embargo te advierto que aun empleando el correcto esto no es perfecto, obtendrás un código muy enrevesado, aunque no será tan doloroso a la vista como con uno incorrecto.
Se me ocurre también que la mayor parte de los programas incluyen un texto como manual, si no lo incluye también puedes probar a ejecutarlo desde la terminal con el argumento "-h" o "--help", si no funciona puedes intentar hacerte una idea de su funcionamiento mediante la utilidad objdump en linux ejecutando:
objdump -s -j .data archivo.exe
Con esto volcarás todos los valores en la sección .data del ejecutable, ahí es donde más probablemente se almacenen las cadenas de caracteres.

EDITO: Qué casualidad, leyendo el blog de esta página he encontrado esto, que es seguramente lo que buscas ;)
http://blog.elhacker.net/2016/03/la-herramienta-bindiff-es-ahora-gratuita.html
« Última modificación: 26 Marzo 2016, 14:09 pm por arget » En línea

La gestión manual de bloques de memoria en C es como hacer malabarismos con pastillas de jabón en la ducha de la prisión: todo diversión hasta que cometes un fallo.
kaiserdj

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: ¿Cómo descopilo esto?
« Respuesta #2 en: 26 Marzo 2016, 16:11 pm »

Podrías ir a la página del programa y ver el típico archivo changes.txt que explica los cambios que efectúa en cada versión. Claro que no siempre lo escriben... en ese caso lo lógico sería desensamblar y mirar el código en ensamblador, si no sabes ensamblador utiliza un descompilador, que lo que hace es primero desensamblar y este código traducirlo a las instrucciones más probables en el lenguaje para el que está diseñado el descompilador (si es un descompilador para C lo hará en C). El problema es que cada lenguaje se traduce a ensamblador de manera distinta, un código ensamblador proveniente de C no tiene el mismo método para por ejemplo entrar a una función o salir de ella que el que utiliza uno de (yo que sé) Lisp.
De modo que debes identificar en qué lenguaje puede estar hecho y descompilarlo, si utilizas un descompilador incorrecto el código será imposible de leer. Sin embargo te advierto que aun empleando el correcto esto no es perfecto, obtendrás un código muy enrevesado, aunque no será tan doloroso a la vista como con uno incorrecto.
Se me ocurre también que la mayor parte de los programas incluyen un texto como manual, si no lo incluye también puedes probar a ejecutarlo desde la terminal con el argumento "-h" o "--help", si no funciona puedes intentar hacerte una idea de su funcionamiento mediante la utilidad objdump en linux ejecutando:
objdump -s -j .data archivo.exe
Con esto volcarás todos los valores en la sección .data del ejecutable, ahí es donde más probablemente se almacenen las cadenas de caracteres.

EDITO: Qué casualidad, leyendo el blog de esta página he encontrado esto, que es seguramente lo que buscas ;)
http://blog.elhacker.net/2016/03/la-herramienta-bindiff-es-ahora-gratuita.html
Muchas gracias por contestar y por toda la información que me has dado, me pongo ahora con ello haber si lo consigo
Un saludo!



No consigo ejecutar el BinDiff,
e instalado la ultima versión de la web y cuando lo ejecuto no sale nada.
también e descargado la versión 4.1 y da problema con java
Un saludo



Ya lo e conseguido arreglar  ::)



[MOD] Esto no es un chat, para añadir comentarios se usa el botón "modificar".
« Última modificación: 26 Marzo 2016, 16:50 pm por simorg » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
esto como se come?
Ingeniería Inversa
Badcode 3 2,794 Último mensaje 18 Agosto 2004, 22:09 pm
por WiNSoCk
como ago esto ..... ???
Multimedia
jhct 5 2,711 Último mensaje 25 Febrero 2005, 10:41 am
por jhct
[MOD] ¿Cómo hago esto? osea como creo un video como este.
Multimedia
MicroAttackeR 2 4,299 Último mensaje 27 Octubre 2008, 21:26 pm
por MicroAttackeR
Como hacer algo como esto......--->> « 1 2 »
Desarrollo Web
prometheus48 11 6,631 Último mensaje 4 Enero 2012, 19:12 pm
por prometheus48
¿ como se lee esto?
Programación C/C++
ALONSOQ 4 2,970 Último mensaje 5 Agosto 2012, 17:14 pm
por ALONSOQ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines