• Lunes 23 de Diciembre de 2024, 19:11

Autor Tema:  Protejer Una Aplicacion Con Un Metodo Efectivo  (Leído 1217 veces)

COSERVITEL

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Protejer Una Aplicacion Con Un Metodo Efectivo
« en: Jueves 22 de Abril de 2004, 23:24 »
0
saludos amigos, quisiera que mis aplicaciones tuviesen un tipo de archivo de seguridad como algunos programas de mi pais los cuales son dificiles o al menos casi imposibles de cracker por ejemplo..

algunos programas leen un archivo .sis el cual contiene lo siguiente :

00-1101-307774-ADM ---> numero de licencia de la aplicacion
LIA CELULAR, C.A. ---> nombre de la empresa o cliente que compro el sistema
20031228 ---> fecha de la creacion del .sis
180351512451141132235215414211 ---> ni idea imagino que codigo encryptado
471722357415211831350024962311 ---> ni idea imagino que codigo encryptado
823123221193524344861531618421 ---> ni idea imagino que codigo encryptado
047624610664435256200318502422 ---> ni idea imagino que codigo encryptado
712362212231251763027357462118 ---> ni idea imagino que codigo encryptado
151444415211124613134431314180 ---> ni idea imagino que codigo encryptado

este es un archivo el cual es leido por el .exe y el cual puede ser editado hasta por el block de notas pero al modificar cualquier cosa al menos un numero o una letra al ejecutar el .exe coloca el sistema en modo demostracion y solo puede ejecutar algunas cosas , etc pero en modo normal coloca el nombre de la empresa en la barra de titulos y en los informes y ejecuta todo,,, ahora el programa igualmente se le vence el .sis cada 6 meses por lo cual ahi que renovarlo llamando al creador del sistema y envia un .sis nuevo el cual funciona perfectamente con el .exe alguien tiene alguna idea de como hacer esto por lo que dije es una buena forma de proteger aplicaciones aqui en mi pais todas las aplicaciones comerciales funcionan de ese modo y todavia no he visto que las crackeen unicamente si tienen el archivo generador del .sis

COSERVITEL

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: Protejer Una Aplicacion Con Un Metodo Efectivo
« Respuesta #1 en: Jueves 22 de Abril de 2004, 23:32 »
0
me explico en resumen ....

1. - entro en la pagina del creador del software lo descargo lo instalo lo ejecuto me aparece en modo demo por supuesto por todos lados dice demostracion hasta en los informes y solo me deja hacer par de operaciones.

2.- me gusto el software lo compro me envian el archivo .sis por correo

3.- copio el software .sis en la carpeta principal del programa

4.- al ejecutar la aplicacion que baje como demo funciona perfectamente colocando el nombre de la empresa en todos lados y hasta en los informes






nota : en modo demo si quiero cambiarles a los informes el nombre de la empresa me da error

por eso me parece una excelente forma de proteger la aplicaciones........ :ph34r:

Brroz

  • Miembro de PLATA
  • *****
  • Mensajes: 1058
    • Ver Perfil
Re: Protejer Una Aplicacion Con Un Metodo Efectivo
« Respuesta #2 en: Viernes 23 de Abril de 2004, 14:47 »
0
Hola COSERVITEL.

Es una forma más de complicar un poco las cosas, pero no podrías evitar el uso ilegal del soft. Me explico:

1- Nada impediría distribuir copias ilegales del ejecutable junto con el archivo .SIS. Desde luego que en la misma empresa la aplicación se podría instalar en tantos puesto como se deseara sin mayor problema.

2- Dependiendo de como se calcule la clave según la fecha actual y los datos de entrada del archivo de texto (encriptados o no), podría ocurrir que alguien utilizase un programa para debuguear tu aplicación, agregando puntos de interrupción a las llamadas a las funciones de MSVMVB60.DLL, lograse indentificar el algoritmo de comprobación de esas claves. A continuación sólo tendría que crear un programita que crease un archivo .SIS a gusto y llamar a tu aplicación.

Yo desde luego que no sabría hacerlo, pero no dudes que mucha gente si sería capaz...
De todas formas, para implementar una solución de este estilo, lo principal es crear el algoritmo que a partir de la fecha actual y una serie de valores, aplicando ciertas operaciones, obtenga un valor con el que comparar y así decidir si la copia es legal o no. Algo así (por supuesto que supersimplificado, sólo para que te hagas una idea).

Para probar añádelo a un Form con un CommandButton
Código: Text
  1.  
  2. Option Explicit
  3.  
  4. Private Sub Command1_Click()
  5.    
  6.     Dim str1 As String, str2 As String
  7.     str1 = InputBox("Introducir fecha instalación", , Now)
  8.     str2 = CamuflarFecha(str1)
  9.    
  10.     MsgBox "Fecha de instalación: " & vbCrLf _
  11.     & str1 & String(2, vbCrLf) & "Camuflada: " & vbCrLf & str2 _
  12.     & String(2, vbCrLf) & "Esta cadena la leerías desde archivo de texto"
  13.        
  14.     MsgBox "Dias que han pasado: " & DateDiff("d", DescubrirFecha(str2), Now)
  15.  
  16. End Sub
  17.  
  18. Private Function CamuflarFecha(ByVal Fecha As Date) As String
  19.  
  20.     Dim bytDia As Byte
  21.     Dim bytMes As Byte
  22.     Dim bytAnho1 As Byte
  23.     Dim bytAnho2 As Byte
  24.    
  25.     bytDia = CByte(Day(Fecha))
  26.     bytMes = CByte(Month(Fecha))
  27.     bytAnho1 = CByte(Left(Year(Fecha), 2))
  28.     bytAnho2 = CByte(Right(Year(Fecha), 2))
  29.    
  30.     Randomize Timer
  31.    
  32.     Dim int1 As Integer, str1 As String
  33.     For int1 = 1 To bytDia + 31
  34.         str1 = str1 & Chr(Rnd * 255)
  35.     Next int1
  36.    
  37.     CamuflarFecha = Chr(bytDia + 61) & str1 & Chr(bytAnho1 + 10)
  38.    
  39.     str1 = ""
  40.     For int1 = 1 To bytDia + 11
  41.         str1 = str1 & Chr(Rnd * 255)
  42.     Next int1
  43.    
  44.     CamuflarFecha = CamuflarFecha & str1 & Chr(bytMes + 13)
  45.    
  46.     str1 = ""
  47.     For int1 = 1 To bytMes + 5
  48.         str1 = str1 & Chr(Rnd * 255)
  49.     Next int1
  50.    
  51.     CamuflarFecha = CamuflarFecha & str1 & Chr(bytAnho2)
  52.    
  53.     For int1 = 1 To bytMes + 3
  54.         CamuflarFecha = CamuflarFecha & Chr(Rnd * 255)
  55.     Next int1
  56.    
  57. End Function
  58.  
  59. Private Function DescubrirFecha(ByVal Clave As String) As Date
  60.    
  61.     Dim bytDia As Byte
  62.     Dim bytMes As Byte
  63.     Dim bytAnho1 As Byte
  64.     Dim bytAnho2 As Byte
  65.            
  66.     bytDia = Asc(Left(Clave, 1)) - 61
  67.     Clave = Mid(Clave, bytDia + 33)
  68.     bytAnho1 = Asc(Left(Clave, 1)) - 10
  69.     Clave = Mid(Clave, bytDia + 13)
  70.     bytMes = Asc(Left(Clave, 1)) - 13
  71.     Clave = Mid(Clave, bytMes + 7)
  72.     bytAnho2 = Asc(Left(Clave, 1))
  73.  
  74.     DescubrirFecha = String(2 - Len(CStr(bytDia)), "0") & bytDia _
  75.     & "/" & String(2 - Len(CStr(bytMes)), "0") & bytMes _
  76.     & "/" & String(2 - Len(CStr(bytAnho1)), "0") & bytAnho1 _
  77.     & String(2 - Len(CStr(bytAnho2)), "0") & bytAnho2
  78.    
  79. End Function
  80.  
  81.  

Suerte.