Pregunta

¿Cómo podría proteger a mi aplicación delphi de ser descompilada? Sé que hay algún tipo de software como themida que creo que va a hacer eso, pero entonces el exe protegido desencadenar el antivirus.

¿Fue útil?

Solución

Depende cuál es su meta.
Si no deja de ser la protección de la fuente, ya está hecho! Siempre y cuando no incluya símbolos de depuración y de la información y añadir un poco de procesos en línea pesada, buena suerte para reconstruir algo de código Pascal utilizable a partir de desmontar el exe.
Si se trata de evitar que la gente de ver cómo funciona y entrar ilegalmente en él, entonces usted tiene que incluir algún tipo de protección contra el desmonte. Es más difícil pero factible. A menudo se hace como una garantía para la protección contra la piratería.

Otros consejos

Todo lo que una CPU puede leer, también puede ser "descompilación", por lo que no hay seguridad máxima. Pero por lo general es bastante difícil de descompilar código de Delphi compilado, y casi todos los identificadores y los comentarios se han ido, por supuesto.

Las partes publicadas de clases, el archivo DFM información y constantes (incluyendo las constantes de cadena) están presentes en el archivo exe, de una manera fácilmente legible. Se puede reducir este problema mediante la encriptación de sus cadenas y no usar publicada y no usar archivos DFM. Sin embargo, toda la información seguirá estando presente en su archivo ejecutable, por lo que a menudo esto será sólo el trabajo duro que no da ninguna seguridad real.

Si lo que desea partes de su código fuente a ser difícil de leer, hacer que sus algoritmos difícil ...

Al final, todo lo que puede ser hackeado. La única manera de evitar que su aplicación sea descompilación, es mantener el archivo exe lejos de aquellos que pueden hacerlo, como cuando se implementa en su propio servidor, pero no en el servidor del cliente.

Si estás usando Delphi Prism entonces una de las muchas herramientas de descompilación .Net hará que sea una tarea trivial para obtener acceso a (una forma) de su código fuente.

La única solución es utilizar una de las numerosas herramientas de ofuscación .Net. Lamentablemente no puedo hacer una recomendación ya que nunca he tenido que usar uno, pero Google se debería mostrar el camino ...

Si estás compilando para Win32 nativa entonces cualquier forma de ofuscación, o incluso mecanismo anti-depuración, es más o menos una pérdida de tiempo. Hay gente por ahí que pueden leer el montaje tan fácilmente como usted o yo lea nuestra lengua materna. Estas cosas sólo es lento el proceso de ingeniería inversa algo inferior (y sólo apenas en eso).

Hace pocos años, he tenido que volver a escribir una aplicación, lo abandonó por su desarrollador.

Puedo recuperar todas las cosas desde DFM-s, las formas (con componentes) Las cadenas de consulta almacenados en TxyzQueries, mapas de bits a partir de listas de imágenes, algunas cadenas con decompilador, pero la lógica de aplicación no se pueden recuperar, sólo los nombres de los métodos con fuente asm interior.

Hay cargadoras (como UPX http://upx.sourceforge.net ), lo extrae encriptado, aplicación comprimida en la memoria y lo carga en el arranque, pero de la AV a menudo marca tales aplicaciones como infectado. : (

Puede escribir una pequeña aplicación de esa manera, algunos consejos:

www.codeproject.com/KB/cs/LoadExeIntoAssembly.aspx (NET)  www.joachim-bauch.de/tutorials/load_dll_memory.html (por DLL-s)

Sólo las aplicaciones protegidas con llaves robadas Themida deben dar lugar a un antivirus (Win32.Black detectado por Kaspersky por ejemplo).

En general, realmente no se puede proteger el código de descompilación. Sin embargo, mediante el uso de una herramienta como Código Virtualizer puede proteger áreas clave, como su instalación decodificador de código. Código que se virtualizado es mucho más lento, y tiene ciertas restricciones, pero añade un obstáculo adecuada al hackers problemas ocasionales. Esto se hace mejor en una escritura de la estructura de manera que se añade constantemente para la liberación - de esa manera se asegura una protección adecuada en todo momento.

Yo recomiendo que separa el código de instalación de la protección por cierto, para que pueda cambiar la protección en cualquier momento sin tener que preocuparse acerca de los usuarios existentes.

Finalmente, las formas de Delphi son de fácil acceso, pero generalmente no son útiles para cambiar.

Un desmontaje completo no se logra nunca pienso para la plataforma Win nativa. Si no se incluye símbolos de depuración, etc durante el tiempo de compilación o ocultar estas usando alguna herramienta, es muy poco probable que su exe podría ser decodificada. Ninguna idea acerca de lo .NET.

Una manera fácil de proteger el ejecutable es ejecutarlo como una aplicación web en un servidor de Internet. Con Delphi y un Ajax biblioteca (por ejemplo ExtJS sobre extpascal , o IntraWeb / VCL para la Web), es posible convertir las aplicaciones de escritorio y cliente / servidor de aplicaciones web. (Ejemplos) - esto también hace que la aplicación disponible para otros sistemas operativos y móvil dispositivos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top