Recent

Author Topic: Encriptar Ejecutable...  (Read 2044 times)

crisares

  • Jr. Member
  • **
  • Posts: 61
Encriptar Ejecutable...
« on: September 14, 2021, 03:29:55 pm »
Hola A Todos!!

Estuve buscando información sobre como encriptar la información de el archivo .EXE que genera Lazarus pero no encontré nada al respecto. Busque en ingles también y nada.
El problema que encuentro es que a el archivo .EXE compilado por Lazarus es fácil editarle cosas como los caption de los formularios.
Hay alguna opción en Lazarus al crear el ejecutable para que esto ya no sea posible de hacer con un simple editor hexadecimal?

Gracias

Edson

  • Hero Member
  • *****
  • Posts: 1215
Re: Encriptar Ejecutable...
« Reply #1 on: September 14, 2021, 03:54:17 pm »
Hola. Por lo que yo sé, cualquier aplicación estándar es facil de modificar accediendo a las posiciones adecuadas de memoria. Ni que decir de los ejecutables generados por lenguajes interpretados o al estilo Java que prácticamente de tan el código fuente cuando lo distribuyen.
Lo que yo hacía para proteger ediciones de contenido, es no escribir contenido de texto directamente a los controles sino a través de un algoritmo. Algo como:

Code: Pascal  [Select][+][-]
  1. MiFormulario.Caption := FuncionGeneradoraDeTextoParaFormulario()

Ya luego era cuestión de ofuscar esta función.

Este método no es 100% seguro pero ayuda a proteger mejor tu código.
Lazarus 2.0.10 - FPC 3.2.0 - x86_64-win64 on Windows 8

crisares

  • Jr. Member
  • **
  • Posts: 61
Re: Encriptar Ejecutable...
« Reply #2 on: September 14, 2021, 04:02:51 pm »
Hola Edson

Si...se me había ocurrido algo similar... pero antes de tomarme ese trabajo quería sacarme la duda de si existía algún otro método que sea propio del compilador de Lazarus.
Gracias

440bx

  • Hero Member
  • *****
  • Posts: 2504
Re: Encriptar Ejecutable...
« Reply #3 on: September 14, 2021, 04:16:50 pm »
Hola Edson

Si...se me había ocurrido algo similar... pero antes de tomarme ese trabajo quería sacarme la duda de si existía algún otro método que sea propio del compilador de Lazarus.
Gracias
Hay programas llamados "software protectors" que aplican encription a un ejecutable.  Son programas comerciales (es decir, tienes que comprarlos) que pueden hacer la decompilacion y modificacion de un programa bastante trabajo.

Usa google, busca "software protectors".

Como dijo Edson, no importa el metodo que decides usar, un individual con talento y dedicacion puede derrotar la proteccion, es solamente una question de esfuerzo.

Personalmente, no pienso que vale el dinero y las complicaciones.
FPC v3.0.4 and Lazarus 1.8.2 on Windows 7 64bit.

crisares

  • Jr. Member
  • **
  • Posts: 61
Re: Encriptar Ejecutable...
« Reply #4 on: September 14, 2021, 04:29:32 pm »
Quote
Hay programas llamados "software protectors" que aplican encription a un ejecutable.  Son programas comerciales (es decir, tienes que comprarlos) que pueden hacer la decompilacion y modificacion de un programa bastante trabajo.

Usa google, busca "software protectors".

Gracias por ese dato..voy a buscar al respecto..

Quote
Como dijo Edson, no importa el metodo que decides usar, un individual con talento y dedicacion puede derrotar la proteccion, es solamente una question de esfuerzo.

Coincido con esto que dices... si yo que no tengo mucho talento ni dedicacion a esas cosas pude darme cuenta de que era posible.. no me quiero imaginar quien si tenga ambas cosas  :D
Se trata de aplicaciones basicas y gratuitas que se distribuyen rapidamente pero simplemente me interesaba que no las editen.

mosquito

  • Jr. Member
  • **
  • Posts: 70
Re: Encriptar Ejecutable...
« Reply #5 on: September 23, 2021, 09:19:32 am »
Hola crisares,

yo todavía estoy verde, pero tarde o temprano publicaré algunos de mis programas, quizás freeware o comercial.

Soy de la opinión de proteger con una capa (High Filter) para evitar un pirateo masivo o "regalaó". Pero no dedicar demasiado esfuerzo extra. Al fin y al cabo si hay una dedicación por parte de alguien en piratear tu software, es porque tu programa es bueno y merece la pena, mejor dedicar tiempo al contenido de tu soft y dejar que los inicuos hagan publicidad gratuita de tu programa. Ni las mejores compañías han evitado pirateo de sus programas, robo de datos, etc.

Puedes usar diferentes técnicas para al menos ponérselo algo difícil al inicuo:
  • comprar Enigma
  • colocar la información sensible en un archivo encriptado junto al ejecutable
  • ofuscar
  • requerir login contra un servidor
Algunas de estas vías fuerzan al atacante a dejar su editor hexadecimal y ponerse a interceptar datos en RAM (a ser posible en la heap). Esto es una primera barrera que puede desmoralizar a los weekend hackers (de resource hacker y primerizos con un debugger, por ejemplo).

Aún así, con dedicación o con los conocimientos estas medidas pueden saltarse.

También hay métodos más enrevesados pero, en mi opinión si vas a publicar para MS Windows, cuanto más cosas "raras" contenga tu ejecutable, más posibilidades tienes de obtener un falso positivo de cualquier anti-virus o eurística de scanner. Esto sería más demoledor en mi opinión que un pirateo, ya que los datos de programas supuestamente dañinos se reportan y puedes quedarte con un programa marcado como perjudicial a nivel planetario. :o
« Last Edit: September 23, 2021, 09:26:38 am by mosquito »

damieiro

  • Full Member
  • ***
  • Posts: 188
Re: Encriptar Ejecutable...
« Reply #6 on: September 23, 2021, 08:56:02 pm »
Como siempre, el esfuerzo de desproteger, tiene que ser mayor que el de proteger, o no es rentable :D

Dicho esto, si el programa va a usar textos para las labels/captions, lo que sea, lo más práctico es tener un archivo que empareje IDs de texto con el texto a poner aparte (en plan los juegos de Paradox como el Vicky)

La ventaja de esto es que permites que la aplicación pueda traducirse a cualquier idioma cambiando la tabla/archivo de texto.

Y a partir de ahí, tocará decidir si quieres encriptar o no. Puedes encriptar ese archivo de texto y desencriptarlo con la función que traiga el par de texto que necesites....
« Last Edit: September 24, 2021, 12:01:19 pm by damieiro »

 

TinyPortal © 2005-2018