![]() |
Proteger tu EXE
Hola, soy nuevo programando en Delphi y me he dado cuenta que con software editor hexadecimal se puede ver parte del código fuente de un programa creado en Delphi.
La pregunta es: ¿Es posible ocultar o cifrar de alguna forma tu exe para que no pueda ser descompilado ni fisgoneado por nadie? Gracias. PD: Es bastante grave.. Uso el componente ZeosLibr para conectarme a Mysql y me fijado que con un programa que permite "descompilar" puedes ver los datos del objeto ZConnection, host, user, pass, database, etc..etc.. (Es bastante triste) xD |
"Descompilar" es imposible. Ver las cadenas de texto sí que puedes hacerlo con todos los lenguajes existentes, lo que puedes hacer es "esconderlo" mediante "trucos", por ejemplo: si la clave es "ABC" en el código puedes poner algo así como: char(65)+char(66)+char(67).
También es conveniente, cuando ya vas a crear el ejecutable para entregar al cliente que deshabilite las opciones de depuración del compilador, así "desaparecerá" gran parte del código que dices que se puede ver. Las técnicas y trucos son muchísimos, son cosas que se aprende de la experiencia y... de los libros :) |
También puedes guardarlo en una variable mezclando cosas. Por ejemplo clave PEPE.
cPass:='123PABCDEE123PAA333E'; Luego haces que tu programa recoja de la variable los datos que te interesan y se los pasas al componente. Un Saludo. |
Vale, gracias por vuestra ayuda, pero estoy seguro que hay alguna herramienta para cifrar un exe de manera que ningún descompilador vea ni el Caption de la ventana.
|
Sí, por supuesto que existen utilidades para hacer muchas cosas de esas, por ejemplo, compresores de ejecutables. Pero todo lo que haga no servirá de nada porque si te encuentras con una persona que pone su empeño en revertir la situación... lo hará. ¿Acaso las grandes multinacionales no se gastan millones en proteger sus programas?, ¿verdad que encuentras todos esos programas, si quieres, para usarlo y... sin protección? ;)
|
Cita:
Tal y como ha comentado alguien, no puedes ver ni extraer el código de tu programa. Lo que sí puedes ver son las cadenas de texto almacenadas y los recursos. Entre estos últimos están los formularios, por lo tanto no deberías almacenar datos sensibles en los formularios, como los datos de acceso a una Base de Datos. Cita:
Cita:
Cita:
Sólo hay que buscar: Código:
Crypters: Cita:
Código:
Tools & Identifiers: Lo que te quiero decir con esto es: (1) No hay método infalible (y menos aun a un precio asequible :)). (2) Las formas que suelen ser más efectivas son las mixtas. Es decir, mezclar una solución estandard(a) (programa de encriptación) con algunos trucos sencillos que eviten que la decompilación se haga con un simple click (b). (a) Esta deja fuera a la gran mayoría de usuarios "noveles". (b) Muchos con conocimientos medios o de software que consiguen saltar la primera, cuando llegan al punto de tener que revisar líneas de código ASM desisten de ello. => A los que pasen del punto (a) y del (b) se supone que no les vas a deterner casi con nada. :(:( Para esos queda el (3). (3) A estos la forma de "evitarlos" es por cansancio. Es decir, aunque son capaces de romper casi cualquier protección, les cuesta tiempo y esfuerzo hacerlo. Si sacas actualizaciones frecuentes, variando un poco la protección, les obligas a cada actualización a repetir todo el proceso y eso les "joroba" bastante. Espero haber aclarado un poco las cosas. Un saludo. |
Aclarado? Más que eso, muchas gracias ;)
EDITO: ¿Por cierto, cual de ellos crees que es mejor? |
Por qué no una simple rutina con Xor?. Por ahí en los foros debe haber una.
Saludos. |
Cita:
Yo he hecho pruebas (hace ya un par de años) con AsPack, PECrypter, Armadillo,... Busca uno y al menos revisa: (1) Que no exista Decrypter para la última versión. (2) Que el crypter se actualice bastante a menudo. (3) Que te permita fácilmente variar algun parámetro de la encriptación; De forma que cuando compiles una nueva versión puedas variar algun parámetro. Esto último también es adecuado para lo pequeños "trucos" que uses con las cadenas y demás. EDITO: He dicho que "los más potentes son los de pago"; Tal vez no es del todo correcto. Son los más testeados, los que menos errores te pueden dar, los mejor acabados, los mejor presentados,... pero no necesariamente son los más "potentes". Un punto importane es que los "comerciales" sueles estar más probados en las distintas versiones de los S.O. y en diferentes escenarios. De todas maneras no he probado tantos como para que esta opinión sea tomada como 100% cierta; Es más una percepción, o una opinión, a partir de algo de conocimiento (poco) que tengo sobre el tema. |
se agradece :)
|
La franja horaria es GMT +2. Ahora son las 06:14:21. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi