Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Talking Desensamblar Un .Exe Copilado en lazarus

He estado leyendo bastante en cuanto a Desensamblar y ofuscar codigo, por lo que he podido entender los NET son los "mas faciles" de Desensamblar, los mas dificiles C y C++, mi pregunta

¿Se puede obtener el codigo fuente de una aplicaión copilada en lazarus?

Yo solo he podido obtener los valores que se colocan por defecto en cada elemento que conforma un formulario(nombre,tamaño,fuente,entre otros recursos) mas no el codigo en pascal.
Responder Con Cita
  #2  
Antiguo 16-11-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por pedrolazarus Ver Mensaje
¿Se puede obtener el codigo fuente de una aplicaión copilada en lazarus?
No.

De hecho es imposible obtener el código fuente de cualquier programa mínimamente complejo escrito en un lenguaje de alto nivel o nivel medio, salvo que el ejecutable contenga información de depuración completa y sin optimizar absolutamente nada.

Cita:
Empezado por pedrolazarus Ver Mensaje
por lo que he podido entender los NET son los "mas faciles" de Desensamblar
Falso.

La máquina virtual CLR se comporta de forma similar a cualquier microprocesador, mediante op-codes que representan operaciones elementales. No conozco los detalles, pero no creo que use una estructura similar a las viejas máquinas virtuales BASIC (la única que conozco de la que se puede obtener el código fuente, puesto que cada op-code es una instrucción BASIC), así que dudo se pueda desensamblar el código fuente de ningún programa, salvo que el ejecutable contenga información de depuración completa y sin optimizar absolutamente nada.

Ojo: Esto no significa que sea imposible obtener un código fuente que funcione (lo que se llama código equivalente) a partir de un ejecutable, pero nunca podrás obtener el código original. Es más, dependiendo de las opciones de compilación, incluso puede ser imposible obtener un código equivalente en el lenguaje de programación original.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine

Última edición por Ñuño Martínez fecha: 16-11-2012 a las 16:08:43.
Responder Con Cita
  #3  
Antiguo 16-11-2012
pedrolazarus pedrolazarus is offline
Miembro
NULL
 
Registrado: sep 2012
Posts: 91
Poder: 12
pedrolazarus Va por buen camino
Cita:
Empezado por Ñuño Martínez Ver Mensaje
No.

De hecho es imposible obtener el código fuente de cualquier programa mínimamente complejo escrito en un lenguaje de alto nivel o nivel medio, salvo que el ejecutable contenga información de depuración completa y sin optimizar absolutamente nada.

O sea que da lo mismo utilizar o no un ofucador? igualmente no podran ver el codigo que es lo importante pero si los recursos (formularios,edits, y demas)
Responder Con Cita
  #4  
Antiguo 26-11-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Depende. Los ofuscadores se suelen usar cuando el código fuente es visible (por ejemplo, JavaScript, REXX, Bash...). Pero sí, en el caso de los lenguajes compilados es un poco pérdida de tiempo, porque si se compila con optimización y sin depuración se suele ofuscar bastante.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 28-11-2012
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
A ver... tengo entendido que ofuscar no lo hace ningún compilador... de a lo que tengo entendido ofuscar no es nada más y nada menos que simplemente hacer el código más difícil de leer (algo muy perjudicial a la salud mental de quien tendrá que darle mantenimiento al código... Y si se recuerda cierta frase de Martin Fowler ¡mejor no digo! ).
De ofuscar se lo puede hacer en cualquier lenguaje... pero hay ciertos lenguajes crípticos que se prestan más fáciles de hacer eso.
O para decirlo más vulgarmente, ¡el código espaquetti!
De hecho, hay hasta concurso sobre ofuscamiento. Algunos están tan a divino pedo que hasta se esmeran en escribir código en forma de dibujos... a lo muy ascii-paint... formas de estrellas, coronas, corazones...

Y también se suele entender al término como añadir instrucciones "dummy" que sirven para dificultar un poco más a algún posible listillo que intente usar algún desemblador, debugger o editor hexadecimal. En este caso lo que se busca es añadir instrucciones que no aportan valor real al ejecutable pero que están para evitar o al menos dificultad que alguien pudiera reconocer algunas posibles instrucciones que se realizan... sumas y restas, intercambio de caracteres, inversión de palabras, o descomponer y recomponer numéros son algunos ejemplos que pueden servir a modo de distracción y evitar que alguien descubra algún proceso que consideremos sensible.

Como puede verse, la ofuscación esto no depende de un lenguaje... sino de habilidad de un programador.
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 30-11-2012
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por Delphius Ver Mensaje
tengo entendido que ofuscar no lo hace ningún compilador...
Hombre, estrictamente hablando no, pero si compilas algo con optimizaciones y demás y luego recuperas en lenguaje ensamblador el resultado (si no recuerdo mal, con los compiladores GCC esto se hace añadiendo la opción -S al comando de compilación) el resultado es bastante ilegible...
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #7  
Antiguo 30-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Ñuño Martínez Ver Mensaje
Hombre, estrictamente hablando no, pero si compilas algo con optimizaciones y demás y luego recuperas en lenguaje ensamblador el resultado (si no recuerdo mal, con los compiladores GCC esto se hace añadiendo la opción -S al comando de compilación) el resultado es bastante ilegible...
Claro, para que no se puedan buscar cadenas de texto y cosas legibles, como: "vidas=vidas-1"
Responder Con Cita
  #8  
Antiguo 08-12-2012
Avatar de donald shimoda
donald shimoda donald shimoda is offline
Miembro
 
Registrado: jul 2008
Ubicación: Argentino en Santa Cruz de la Sierra
Posts: 1.083
Poder: 17
donald shimoda Va por buen camino
Cita:
Empezado por pedrolazarus Ver Mensaje
He estado leyendo bastante en cuanto a Desensamblar y ofuscar codigo, por lo que he podido entender los NET son los "mas faciles" de Desensamblar, los mas dificiles C y C++, mi pregunta
El código intermedio generado en dot net es muy fácil de seguir, es verdad. Por eso existe cantidad de ofuscadores para dot net.

Saludos.
__________________
Donald Shimoda [Team RO] - Blogs: Remobjects Pascal
Responder Con Cita
  #9  
Antiguo 11-12-2012
Avatar de maxid
maxid maxid is offline
Miembro
 
Registrado: ene 2006
Posts: 38
Poder: 0
maxid Va por buen camino
Smile

Todo se puede desensamblar, pero a asembler, si esta compilado sin depuracion y optimizado solo quedan las instrucciones que leerá el micro.
El desensamblador recoree todo el ejecutable y te va a dejar bloques que serian un procedimiento o funcion y una larga lista de instrucciones y direcciones hexadecimal.
Los crackers hacen eso para averiguar donde estan las llaves para habilitar software. Si lo ofuscas le haces el trabajo mas tedioso, pero lo mas seguro que haga mas lenta tu aplicacion.
__________________
Maestro no solo es el que conoce sino el que comparte lo que sabe.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Lazarus en el Mac Javier_1712 Lazarus, FreePascal, Kylix, etc. 1 15-03-2011 17:00:38
Lazarus fwhite Varios 1 20-08-2010 09:18:34
Desensamblar .exe en delphi (voy a ser sincero ^^) djsema Varios 0 16-11-2009 17:10:50
[Lazarus] GTK+-devel en SUSE. problema instalar lazarus de esa libreria. sakuragi Lazarus, FreePascal, Kylix, etc. 3 28-09-2006 03:31:09
Lazarus DJ VMan Varios 2 01-08-2003 23:54:56


La franja horaria es GMT +2. Ahora son las 08:13:39.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi