Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Arrow ¿Cuan seguro es una DLL?

Hola,
Estoy empezando a ver lo que son DLLs con Delphi y encontré mucha información en la búsqueda del Foro, me preguntaba ¿Cuan seguro es crear una DLL donde puedo declarar algunas funciones?. Me hacía esta pregunta ya que cuando se crea una DLL de recursos, vi programas que leen y recuperan esa DLL (ResHacker, Restief, etc) u otros programas que leen DLLs y EXEs como PE Explorer, Hiew, etc., pero, ¿Estos Programas recuperan también el código?, si fuera así como proteger la DLL?
Deiv
Responder Con Cita
  #2  
Antiguo 08-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
No hay forma de recuperar el código original a partir de un ejecutable o dll, como mucho puedes obtener el código ensamblador. Eso es inevitable, pero reconstruir el funcionamiento de una aplicación a partir de su código en ensamblador puede resultar bastante complicado.

Sin embargo los programas como ResHacker no leen el código del ejecutable, sino sus recursos, imágenes, iconos, sonidos, definiciones de formularios, etc. pero no el código fuente. Si necesitas ocultar este tipo de cosas, por ejemplo, porque no quieres que te copien las imágenes que utilizas en tu aplicación, puedes utilizar algún tipo de cifrado, de esta manera aunque alguien consiga extraerlas del ejecutable no le servirían de nada.
Responder Con Cita
  #3  
Antiguo 08-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
A lo que pueden acceder, hasta donde yo sé, es lo que tu exportes de esa dll.

Lo que no se exporte, no hay forma de acceder. El código, es imposible.


Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 08-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
La siguiente pregunta, quizá sea tonta (ruego entiendan por los conocimientos limitados que tengo en el tema), pero una DLL puedo crear desde un archivo de texto o desde Delphi verdad? lo compilo, y tengo mi DLL lista para enlazar con mi aplicación u otras.

Dije de repente es tonta la pregunta porque no la he aplicado aún: ¿Puedo editar mi propia DLL? hago esta pregunta ya que si bien "no se puede modificar", entonces ¿cómo el autor modifica su DLL? o es como dijo Lepe, solo cuando se exporta? ¿como?
Deiv
Responder Con Cita
  #5  
Antiguo 09-12-2006
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 Deiv
La siguiente pregunta, quizá sea tonta (ruego entiendan por los conocimientos limitados que tengo en el tema), pero una DLL puedo crear desde un archivo de texto o desde Delphi verdad? lo compilo, y tengo mi DLL lista para enlazar con mi aplicación u otras.

Dije de repente es tonta la pregunta porque no la he aplicado aún: ¿Puedo editar mi propia DLL? hago esta pregunta ya que si bien "no se puede modificar", entonces ¿cómo el autor modifica su DLL? o es como dijo Lepe, solo cuando se exporta? ¿como?
Deiv
Una DLL no es más que un ejecutable. Es más, si comparas los primeros octetos (bytes) de una DLL con los primeros de un EXE verás que son casi idénticos. Por lo tanto, un autor modifica su DLL de la misma forma que los autores modifican sus EXE...
Responder Con Cita
  #6  
Antiguo 16-12-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 19
Deiv Va por buen camino
Arrow

Y solo solo por curiosidad, ya que crear una DLL es por así decirlo dar un manera de seguridad a un Programa, ¿Como antes Pascal daba seguridad a sus programas con varias Units que debía tener adjuntas? ¿O es que todo estaba incluido en su ejecutable?

He leido que el ejecutable de Delphi TDump genera un reporte de una DLL a Texto de toda la Info?? acaso esta no es una forma de checkar parte del código de la DLL?
Responder Con Cita
  #7  
Antiguo 16-12-2006
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por Deiv
Y solo solo por curiosidad, ya que crear una DLL es por así decirlo dar un manera de seguridad a un Programa, (...)
Eso no tiene porqué ser así. Es decir, que los archivos "DLL" no están pensados para "dar seguridad" a un programa,... a no ser que la "DLL" cuente con recursos que el programa utilize para darse una cierta seguridad... no hablamos en qué, pero, en principio una "DLL" puede servir para eso como para no pocas cosas más.

Por ejemplo, una "DLL" permite compartir recursos. Así las "DLLs" que componen el API de Win32. Tú no distribuyes con tus programas la "DLL" "Shell32.dll", por ejemplo, y, sin embargo, es probable que hagas uso de ella en tus programas. Esa "DLL" está ya en Windows, generalmente en la carpeta "C:\Windows\System32\" (en Windows NT/2000/XP), de modo que te ahorras distribuirla... pero no sólo tú sino cualquiera que la necesite se la encontrará ya en el sistema.

Y es sólo un ejemplo: el de compartir código, compartir recursos entre programas. Pero, una "DLL" también puede servirte, por ejemplo, para no tener que "redistribuir" completamente un programa tuyo en caso de actualización. Es decir, si cierta parte del programa se encuentra en una "DLL" bastaría con que actualizaras dicha "DLL": el resto del programa no tendrías que actualizarlo.

Y sigue siendo sólo un ejemplo... puedes utilizar una "DLL" para almacenar recursos (imágenes, otros archivos), funciones útiles, qué sé yo... lo que se te ocurra a ti (y a algún compañero que sepa más que yo). No se trata por tanto de que las "DLLs" existan para proporcionar cierta seguridad a un programa, a lo menos hasta donde yo lo veo, vamos.

Cita:
Empezado por Deiv
He leido que el ejecutable de Delphi TDump genera un reporte de una DLL a Texto de toda la Info?? acaso esta no es una forma de checkar parte del código de la DLL?
No. El código no podrá ser accedido, sencillamente, porque no está ahí "en claro". El compilador acaso dejará por ahí el nombre de los procedimientos, nombres de clases, tipos, etc., pero, el código fuente de un procededimiento, por ejemplo, no estará disponible. A lo menos esto es así en lenguajes como Delphi, en compiladores "nativos". Por ejemplo en ".NET" no sucede esto, y se tienen que utilizar (si se quiere) técnicas de "ofuscación" del código, puesto que por medio de otras técnicas de "reflexión"que se llaman es posible al código fuente tal cual, o casi tal cual.

Pero esto esto es así porque lo que se obtiene al compilar un "ensamblado" para ".NET" es un lenguaje "intermedio" que puede, como he dicho, llegar a entenderse casi perfectamente (según recuerdo de lo leído sobre el tema). Es la máquina virtual de .NET la que se encarga de compilar dicho lenguaje intermedio a código máquina. Pues bien, con Delphi lo que obtienes, tu DLL, es código máquina, y así, al menos que yo sepa, no hay forma de acceder al código fuente tal cual tú lo puedes ver.

De todos modos reconozco que a mí todo esto me queda un poco grande. No sé exactamente si todo lo que he dicho es así o si he oído campanas y bueno,... trato de ayudar más con voluntad que conocimiento. Si tenéis que corregirme hacedlo tranquilamente. Pero, ya digo, la pregunta "¿cómo obtengo el código fuente de un programa ejecutable de Delphi?", siempre que se ha efectuado en estos Foros ha obtenido las mismas similares respuestas: "No es posible, eso no es posible".
__________________
David Esperalta
www.decsoftutils.com
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
¿Windows Vista muy seguro? Casimiro Notevi La Taberna 13 09-12-2006 08:25:48
¿Cuan costoso puede ser Delphi? MARVIALI Conexión con bases de datos 1 07-12-2004 18:37:25
Seguro que es una pavada!!! nicolasdom Conexión con bases de datos 2 20-09-2004 23:04:34
Hay que tener seguro médico jachguate Humor 9 18-03-2004 22:45:53
Modo seguro en cgi o isapi ingacg Internet 0 25-10-2003 02:08:14


La franja horaria es GMT +2. Ahora son las 18:22:47.


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