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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Un reto !!!
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Un reto !!!  (Leído 9,313 veces)
VirucKingX


Desconectado Desconectado

Mensajes: 541


VirucKingX


Ver Perfil
Un reto !!!
« en: 29 Abril 2006, 23:10 pm »

Esta podria ser la pregunta mas lammer del planeta pero igual la voi a decir ^^

¿Seria posible ver el código fuente de un exe, ya compilado?

Lo primero que me vino a la cabeza es un IMPOSIBLE, pero como ustedes sabran y yo se que las cosas imposibles, son siempre posibles... Realmente me hizo pensar ese pregunta q lei en otro foro incluso aun la estoy pensando, jajaja

Y lo q me hace dudar aun mas, es cuando pasas un .exe a .rtf . Lo q pasa es q puedes ver partes del code  :P asi q no se si se podra.

bye si no se puede, diganme por q no se puede  :huh:



En línea



Bye
_Sergi_


Desconectado Desconectado

Mensajes: 842



Ver Perfil
Re: Un reto !!!
« Respuesta #1 en: 29 Abril 2006, 23:13 pm »

Bueno lo primero. Eso no es que sea imposible. Es Super-Imposible. Y no voy a explicar por qué, es obvio.

Y lo segundo ¿Qué es eso de pasar de EXE a RTF?  :huh:
(es como si estuvieras diciendo que puedes convertir a un ser humano en un tractor, algo muy diferente de poner a un ser humano sobre un tractor, o al reves)


En línea

Proyecto de Ingeniero
VirucKingX


Desconectado Desconectado

Mensajes: 541


VirucKingX


Ver Perfil
Re: Un reto !!!
« Respuesta #2 en: 29 Abril 2006, 23:31 pm »

La unica respuesta que resivo es un NO, pero por q no  :huh:

mira si abres un exe con el wordpad, veras un code intendible te voi a mostrar un fracmento

ÿÿÿRMÜPQ‰]܉]̉]¼‰]¬‰]¨‰]¤‰] ‰]œ‰]˜‰]ˆ‰Tÿÿÿ‰Pÿÿÿ‰ÿÿÿ‰

no dice nada pero entre medio de todo es code aparecen cosas como : Proyecto1 Label2 Label1

y eso realmente a mi me hace dudar, y nuevamente me hago esa pregunta ¿ Por q no se puede ver el code de un exe ?

si alguien sabe por q no se puede q me explique, para q alfin borre esa pregunta de mi mente...

bye  :-(
En línea



Bye
_Sergi_


Desconectado Desconectado

Mensajes: 842



Ver Perfil
Re: Un reto !!!
« Respuesta #3 en: 30 Abril 2006, 00:15 am »

Bueno me he decidido a explicarlo, ya que nadie lo hace. Lo primero. ¿Sabes lo que es compilar? Bien compilar es pasar un código, escrito en un lenguaje cualquiera (p.ej VB) a instrucciones que entienda un microprocesador. Es decir, pasar "A + B = C" a "01010101011101011".

Cuando tu abres un EXE , con el bloc de notas o con el Worpad, ves código binario (representado por caracteres sin sentido) acompañado de algunas palabras. Estas palabras son generalmente recursos del programa, es decir, partes del programa que no requieren ser procesadas (ya se que esto no es asi, es para que se me entienda). Asi, por ejemplo puedes ver el contenido de TextBoxes, el texto de botones.... pero el resto, solo tiene sentido para un micro.

Y tu dirás, dado ese codigo binario ¿No es posible pasarlo al lenguaje original de nuevo, es decir, descompilarlo?

El primer problema es... ¿a qué lenguaje de alto nivel corresponde? ¿Tiene correspondencia con cualquier lenguaje de alto nivel?. Es decir, en primer lugar deberías conocer cual es el lenguaje original, y eso no siempre (casi nunca) es conocido.

Por otro lado, Opciones diferentes de generación de código del mismo compilador (p. ej. optimizaciones -como el caso del P-Code y el N-Code de VB) generan distintos binarios para el mismo código fuente, y sin conocer esas opciones (y no las conoces) no podrás regenerar el código fuente original. Eso suponiendo que hablemos de la misma versión del compilador.

Por que, además, diferentes versiones del mismo compilador generan códigos binarios diferentes para el mismo fuente. La misma situación que el caso anterior. Por no hablar de que se pueden utilizar diferentes compiladores para el mismo fuente. No existen dos compiladores diferentes del mismo lenguaje que generen el mismo binario para un código fuente dado. Además, al compilar, el compilador ignora cientos de lineas de código que para un humano tienen sentido, eso sin contar con los nombres de funciones, comentarios...... al final todos estos acaban siendo direcciones de memoria y otros tantos datos imposibles de recomponer.

A parte de eso, un compilador genera (normalmente) código binario a través de varias fases. Es decir, que incluso suponiendo que se pudieran solventar los problemas anteriores, habría que repetirlo a varios niveles, no en un único paso. Eso sin contar que un ejecutable final puede estar comprimido, cifrado, empaquetado o protegido de mil y un formas.

Desde luego pueden hacerse intentos (inservibles, a no ser para casos triviales) al código original, pero una solución universal (que funcione y lo haga bien en todos los casos posibles) no existe ni existirá. Nunca.
En línea

Proyecto de Ingeniero
VirucKingX


Desconectado Desconectado

Mensajes: 541


VirucKingX


Ver Perfil
Re: Un reto !!!
« Respuesta #4 en: 30 Abril 2006, 00:24 am »


Desde luego pueden hacerse intentos (inservibles, a no ser para casos triviales) al código original, pero una solución universal (que funcione y lo haga bien en todos los casos posibles) no existe ni existirá. Nunca.


E leido con cuidado lo q has escrito, pero cave destacar y ten en cuanta lo q voi a decir: lo q no se puede, con el tiempo es posible. Solo falta un desquiciado q haga el trabajo por nosotros... jajaja ( Esto siempre a sucedido a lo largo de la historia )


bye Bien explicado, al fin me he sacado un peso de mi conciencia ¿ Pero no completa ?  ;D
En línea



Bye
Gangrel

Desconectado Desconectado

Mensajes: 237


Ver Perfil WWW
Re: Un reto !!!
« Respuesta #5 en: 30 Abril 2006, 03:29 am »

Convertir un ejecutable a su codigo original es imposible y ya lo dijo y explico _Sergi_, Es como si yo tengo una estatua y la rompo en pedasitos y despues te paso todos los pedasos y te digo: "pega los pedasos y arma la estatua de nuevo". Tomando en cuenta que tu nunca viste la estatua en su forma original.

Pero lo que si se puede hacer con un exe es desensamblarlo (de seguro lo escrivi mal), esto quiere decir: ver su codigo fuente en codigo ASM.
En línea

La educacion no es un privilegio, es un derecho.

http://www.usuarios.lycos.es/protg
yofoxD

Desconectado Desconectado

Mensajes: 169


Ver Perfil
Re: Un reto !!!
« Respuesta #6 en: 30 Abril 2006, 04:05 am »

pues si nos vamos por el ejemplo de la estatua pienso que es posible ya que de alguna forma se debe poder regresar a su estado original ya que esos pedasos provienen de la estatua asi no la hayas visto, debido a que si hay  mas de 1 millon de formas de tratar de armarla 1 deberia ser pero quien tendria tanta paciencia  y tanta dedicacion para realizarlo :P????? como ya lo dijo viruc solo el tiempo lo dira.
En línea

moe88

Desconectado Desconectado

Mensajes: 36


Ver Perfil
Re: Un reto !!!
« Respuesta #7 en: 30 Abril 2006, 08:46 am »

Bueno, aporto una info mas, aparece en el libro Hacking Etico, en el cápitulo 12, y habla de los analisis pasivos de soft.

DESCOMPILADORES

Los descompiladores es posiblemene el santo grial de la auditoria de binarios.Con una correcta descompilcion desaparece el concepto de codigo cerrado aunque, como mencionamons anteriormente, la verdadera descompilcion es practicamente imposible. Pero no esta todo perdido. Algunos lenguajes aceptan la descompilacion sin problemas. Se trata de lenguajes que no podemos considerar esctrictamente compilados, sino una mezcla de lenguaje compilado e interpretado, como Java, Java es un ejemplo de lenguaje que se compila de forma intermedia independiente del equipo, lo que se suele denominar, codigo de bytes.

(El parrafo sigue hablando de java )

Existen varios descompiladores de java de código abierto que resultan perfectos para recuperar codigo fuente de java, entre los que destacan JReversePro, Jad, Mocha, DJ y otros.

(A continuacion da un ejemplo de descompilacion en java, y la verdad, no esta mal, eso si, es un codigo sencillo, en el resultado, se pierden los nombres de las variables locales, por ejemplo, aunque el JReversePro, crea sus propios nombres)

DESCOMPILACION EN OTROS LENGUAJES COMPILADOS

Al contrario de lo que sucede en Java, que compila su codigo en bytes independientemente de la plataforma, lenguajes como C o C++ se compilan en un lenguaje especifico de la plataforma y se vinculan a librerias concretas del sistema operativo, lo que constituye el primer obstaculo para descompilar programas escritos en estos lenguajes. Un descompilador perfecto resultaria util para un lenguaje concreto, y probablemente, para un solo sistema operativo. Para complicarlo todo, se puede eliminar toda la informacion sobre nombres (simbolos) y depuracion de un programa compilado, lo que impide la recuperacion de los nombres originales utilizados en el programa, como los nombres de variables y funciones, y la informacion sobre tipos.No obstante, la investigacion y el desarrollo de descompiladores continuan.Dos posibles opciones son el descompilador Dcc, para ejecutables i386 DOS y Desquirr, un complemento para IDA Pro.

Referencias

JRevPro en http://sourceforge.net/projects/jrevpro
Mocha en www.brouhaha.com/~eric/computers/mocha.html
Jad en www.kpdus.com/jad.html
IDA Pro en www.datarescue.com/idabase
Desquir en http://desquirr.sourceforge.net/desquirr
The Dcc Decompiler en www.itee.uq.edu.au/~cristina/dcc.html

Bueno, que actualmente sacar el code de un programa compilado es un sueño, creo que estamos de acuerdo, pero vamos... el futuro... uf....

un saludo



En línea

JuszR


Desconectado Desconectado

Mensajes: 2.866


Programming & RI


Ver Perfil
Re: Un reto !!!
« Respuesta #8 en: 30 Abril 2006, 09:13 am »

http://foro.elhacker.net/index.php/topic,121123.0.html
http://foro.elhacker.net/index.php/topic,114392.0.html

Sin ofender, pero como siempre... los programadores de Vb brillan por su conocimiento.
En línea

- No programming language is perfect. There is not even a single best language; there are only languages well suited or perhaps poorly suited for particular purposes. [Herbert Mayer]
Hendrix
In The Kernel Land
Colaborador
***
Desconectado Desconectado

Mensajes: 2.276



Ver Perfil WWW
Re: Un reto !!!
« Respuesta #9 en: 30 Abril 2006, 13:05 pm »

Exacto, se pueden descompilar programas en VB...ahora mismo no me akuerdo del programa...kreo que es uno que se tiene que komprar...no se, yo nunka lo e echo.... :-\ :-\ :-\

Pero de existir si que existen.... :-\ :-\ :-\

Salu2

Hendrix

En línea

"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[RETO] GetMaskColor
Programación Visual Basic
LeandroA 2 2,560 Último mensaje 26 Marzo 2011, 00:19 am
por LeandroA
reto:web-hack_EAS
WarZone
ruben_linux 0 1,775 Último mensaje 11 Agosto 2011, 18:06 pm
por ruben_linux
reto: JWS
WarZone
ruben_linux 0 2,586 Último mensaje 12 Agosto 2011, 18:34 pm
por ruben_linux
[RETO] IsDate « 1 2 3 »
Programación Visual Basic
raul338 29 12,345 Último mensaje 13 Septiembre 2011, 18:38 pm
por Psyke1
los reto a un reto muy dificil
Desafíos - Wargames
elshaker 2 4,647 Último mensaje 2 Enero 2013, 00:12 am
por kaiserr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines