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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?  (Leído 7,989 veces)
[Yeikox]

Desconectado Desconectado

Mensajes: 8



Ver Perfil
¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« en: 30 Septiembre 2008, 19:56 pm »


Saludos, tengo una duda y es la siguiente, es posible obtener el codigo fuente en lenguaje C de cualquier ejecutable ? yo se que actualmente muchos utilizan el ollydbg para desensamblar el codigo fuente de un ejecutable, y asi poder ver sus instrucciones en ensamblador, pero yo quisiera convertir este codigo en C.

Hace algun tiempo habia investigado y me di cuenta de que existian varios programas que permitian obtener codigo en c a partir de un ejecutable, pero lamentablemente no todos funcionaban bien, ademas su buen funcionamiento dependia de otro factor, y era el compilador que se habia utilizado para generar dicho ejecuable, es por eso que quisiera plantear esta duda para saber si alguien tiene alguna solucion, informacion o link al respecto.

Muchas gracias por dedicar un poco de su tiempo en leer este post!!!  ::)
En línea

KJD


Desconectado Desconectado

Mensajes: 314



Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #1 en: 30 Septiembre 2008, 20:35 pm »

Que tal Yeikox, te comento que es imposible obtener codigo fuente en c de un exe, la unica manera es como tu dices con ollydbg para ver el asm del exe pero nada mas. Posiblemente tu Confusión venga de que hayas visto programas que obtienen codigo de ejecutables echos en Visual basic o en la plataforma .net de microsoft. Con estos lenguajes si se puede obtener algo aprecido al codigo fuente, ya que estos programas son en tiempo de ejecucion y se peude llegar a obtener algo parecido al codigo original.
« Última modificación: 30 Septiembre 2008, 20:39 pm por KJD » En línea

"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"

"Keyboard not Found, press F1 To Continue" WTF???
[Yeikox]

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #2 en: 30 Septiembre 2008, 22:55 pm »


Ok, gracias por contestar KJD, pero te digo que no estoy confundido, o al menos eso creo yo :xD...

Bueno ya en serio  :P, la cuestion es que como mencione anteriormente hace algun tiempo pude ver algunos programas que hacian esta funcion, llamados decompiladores, el nombre exacto de cada programa no lo recuerdo en este momento, pero te digo que si era posible obtener el codigo en lenguaje C, creo que el procedimiento que estos programas utilizaban, era pasar primero el ejecutable a codigo ASM y luego hacer la conversion a lenguaje C, pero creo que el problema es que no siempre funcionaban y ademas el codigo C que se obtenia era muy extraño. Asi que partiendo de lo que te digo, creo que si es posible, y es por eso que pido ayuda a todos ustedes, si me pueden decir el nombre de algun programa que realize esta funcion o si me pueden dar alguna pagina en donde se hable sobre esto, muchas gracias a todos  ::).

En línea

Wofo

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #3 en: 30 Septiembre 2008, 23:04 pm »

Probablemente sea un programa que obtenga el código en Ensamblador y luego lo traduzca (con muy mala calidad) a C.

Salu2
En línea

[Yeikox]

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #4 en: 30 Septiembre 2008, 23:21 pm »

Probablemente sea un programa que obtenga el código en Ensamblador y luego lo traduzca (con muy mala calidad) a C.

Salu2

NO se, no se  :-\........ Todo es posible, personalmente no lo veo tan imposible de creer ya que estamos hablando de 2 lenguajes de programacion que son de bajo nivel, yo mejor creeria que la dificultad de obtener un codigo en C, se puede basar en lo complicado u ofuscado que sea el codigo en si, por ejemplo:

Código
  1. #include <stdio.h>
  2.  
  3. void (main){
  4.       printf("Hello World!!!\n");
  5.       printf("No me decompiles por favor, xD");
  6.       getch();
  7.       return;
  8. }
  9.  

No creo que obtener este codigo en C a partir de su ejecutable sea imposible, logicamente teniendo las herramientas adecuadas, lo cual es basicamente mi pregunta......

Esperemos si alguien aporta alguna dato de como podria ser esto posible, salu2   ::)

En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #5 en: 1 Octubre 2008, 01:03 am »

si podrias sacar el codigo C de ese programa usando el desensamblado, pero ese programa que tu ya conoces. uno de los problemas que te puedo decir es que cada compilador hace las cosas a su modo...... y reconocer esto en un codigo compilado ya te complica la vida. como te dicen no hay programa que traduzca el codigo a c y si lo hay la traduccion sera como sera... "mala".

lo que puedes hacer es simple, igual que cuando escribes un keygen tu no escribes el codigo exacto que escribio el programador, escribes un codigo diferente que hace el mismo trabajo. pues desensambla mira lo que te interesa y intentas implementarlo.
En línea

tena


Desconectado Desconectado

Mensajes: 668



Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #6 en: 1 Octubre 2008, 02:56 am »

No se puede decompilar C.

Se puede tener una aproximacion o traduccion mala...
Dicen que este plugin de IDA es bastante bueno, se llama HexRays.

http://ricardonarvaja.info/WEB/OTROS/HERRAMIENTAS/F-G-H-I-J-K/IDA%205.2/Hex-Rays.Decompiler.v1.0.for.DataRescue.IDA.Pro.Advanced.v5.2.zip

Lo que hace es traducir el codigo desensamblado a un pseudo C. No lo he probado asi que tu ya diras..

Saludos
En línea

[Yeikox]

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #7 en: 11 Octubre 2008, 03:05 am »

Gracias por las respuestas ®® y tena, habia estado algo ocupado y no pude contestar antes, pero creo que aun no tenemos una solucion definitiva a este problema, por una parte esta la url de ricardo narvaja que menciona tena, pero esa informacion es algo antigua ya que hace bastante tiempo estuve revizando todo su contenido, muy bueno por cierto, entonces considero que despues de tanto tiempo que ha pasado, debe existir algun programa que logre realizar una traducion un poco decente de un ejecutable a lenguaje C, asi que les agradeceria si alguno de ustedes pudiera proporcionar algo de informacion para lograr hacer esto, ya que mi objetivo no es lograr decompilar algun software de uso privativo para ver su codigo, si no simplemente lograr decompilar ejecutables creados por mi, codigos sencillos.

Saludos a todos y gracias por cualquier tipo de ayuda que puedan ofrecer.  ::)
« Última modificación: 11 Octubre 2008, 03:08 am por [Yeikox] » En línea

...........

Desconectado Desconectado

Mensajes: 281


Ver Perfil
Re: ¿Como Puedo Obtener el Codigo Desensamblado en Lenguaje C?
« Respuesta #8 en: 11 Octubre 2008, 03:13 am »

Si lo hubiera, ya no haría falta esta sección del foro  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines