Protect for Delphi
Protect for Delphi Component, by Reinaldo Yañez Arrey.
Copyright © 200 Reinaldo Yañez Arrey.
Todos los derechos reservados.
rya@labs.df.uba.ar
 
Version 1.0 - 2/2000
 
 
 
Protect for delphi es un componente Delphi nativo que permite proteger programas contra piratería. Forma parte de un sistema de protección y registración que permite validar en forma remota las copias de un programa ejecutable y administrar el proceso de registración. Como características distintivas Prot4Delphi provee máxima seguridad, no esconde ningún tipo de información en registry y cuenta con la posibilidad de activar diversas capacidades del programa protegido en registraciones sucesivas, cada una de ellas con una fecha de caducidad determinada. Esto facilita al desarrollador la posibilidad de habilitar gradualmente ciertas opciones de su software, a medida que el usuario lo requiera.
El sistema protege ejecutables diseñados para correr bajo los sistemas operativos Windows 95 y Windows 98, y es muy simple de utilizar. El componente se instala en la paleta estandard de Delphi 4. Basta colocarlo en algun form de la aplicación (o instanciarlo manualmente) y luego activarlo mediante una sola linea de código.
 
 



La siguiente terminologia se utilizará a lo largo del documento:

Sección rápida:

Esta seccion lo guía paso a paso para una puesta en marcha rápida. Si usted desea proteger su programa contra copia y luego leer la documentación del sistema, esta sección podrá ser de ayuda. Lea cada una de las preguntas en orden y realice los pasos indicados.
 

Que requiero para instalar el componente ?

  Sistema operativo Windows 95 o Windows 98.
  4 Mb de espacio en el disco rígido.
  Delphi 4 instalado.   (Existe una versión disponible para Delphi 3, si necesita esta versión, contáctese con el autor.)
 

Como instalar el componente ?

1) Descomprimir el paquete de instalación (Prot4Dph.zip) a algun directorio,
por ejemplo a C:\Protect4Delphi\

2) Desde Delphi IDE hacer: File\Open. Buscar el directorio donde se han descomprimido los archivos.
(C:\Protect4Delphi\   en  el ejemplo)
(Vaya al directorio  C:\Protect4Delphi\Bin  )
Luego, seleccionar el archivo    Protect4DelphiV40Demo.dpk   y presionar OK. Aparece una ventana con botones Compile, Add, Remove e Install.
Presionar Install, el componente deberia ir a la paleta de componentes.
 

Contenido del paquete de instalación:

\Bin
  KeyGenerator.exe          (Generador de claves)
  UProt4DelphiDefs.dcu
  Prot4Delphi2.dcu
  Prot4Delphi3.dcu
  Prot4Delphi4.dcu
  Prot4Delphi5.dcu
  Prot4Delphi6.dcu
  Prot4Delphi7.dcu
  Prot4Delphi8Cipher.dcu
  Prot4Delphi8KeySchedule.dcu
  Prot4Delphi8SBoxes.dcu
  Prot4Delphi8StaticTable.dcu
  UProt4Delphi.dcu
  UProt4DelphiDefs.dcu
  Protect4DelphiV40Demo.dpk        (Delphi Package)
  Protect4DelphiV40Demo.bpl         (Delphi package library)
  Protect4DelphiV40Demo.dcp         (Delphi compiled package)
  Protect4DelphiV40Demo.dcu         (Delphi compiled unit)
  Protect4DelphiV40Demo.res
  Protect4DelphiV40Demo.dof
\Doc
  Protect for Delphi (English).doc          (Documentacion formato WordPad)
  Protect for Delphi (English).htm          (Documentacion formato hipertexto)
  Protect for Delphi (Spanish).doc          (Documentacion formato WordPad)
  Protect for Delphi (Spanish).htm          (Documentacion formato hipertexto)
\Demos\Standard          (Directorio de ejemplo standard)
  Main.pas
  Main.dfm
  UDefaultRegistration.pas
  UDefaultRegistration.dfm
  Simple.dpr
  Simple.res
\Demos\Custom                  (Directorio de ejemplo más complejo)
  Main.pas
  Main.dfm
  Custom.dpr
  Custom.res
  MyID0010857.uid
 

Como proteger un ejecutable en pocos pasos?

Es muy sencillo, bastan los 3 pasos siguientes :
 

     
    MiProyecto7345h 
    OtroProyectoMio 
    AnotherValidAppKey
    UnSoftwarePara247Perez
     
           (Más adelante puede ver informacion adicional acerca de este punto)  

Como se distribuye el programa protegido ?
 

Que ve el usuario al correr el programa protegido ?
  Como genera el desarrollador la clave de registro ?
Figura 2
 

El generador de claves requiere

   

Como debe utilizar el usuario la clave de registro ?
 

Como se pueden obtener distintos niveles de bloqueo del programa protegido ?

           Es posible habilitar diferentes niveles de bloqueo mediante el uso de la sección "Additional features" del generador de claves. Este puede generar diferentes claves para cada grupo de opciones soportadas, como fue explicado anteriormente. El componente exporta la lista de opciones soportadas mediante la propiedad SupportedCapabilities
Esta propiedad puede ser leida por el programa en tiempo de ejecución, para poder tomar acciones específicas por cada opcion soportada/no soportada.

Tiene Protect for Delphi soporte multilenguaje ?  

He tenido problemas con las instrucciones.
Donde puedo ver ejemplos funcionando ?
 

Los ejemplos (que deberian compilar sin problemas) están en las carpetas:

\Demos\Standard     (Directorio de ejemplo standard)
 Simple.dpr              (Proyecto standard)
\Demos\Custom       (Directorio de ejemplo más complejo)
 Custom.dpr             (Proyecto más complejo)

Para abrirlos: en Delphi hacer (menu) File -> Open -> (ir a la carpeta donde se ha instalado el componente) -> (seleccionar uno de los directorios indicados arriba) -> (seleccionar el archivo de proyecto) -> OK u Open.
Compilar y correr con F9
 
 

Cual es el método de pago para obtener Protect for Delphi ?
Se ofrece soporte y futuras
actualizaciones ?

Los métodos de pago disponibles son tarjeta de crédito o transferencia de dinero.
Existen dos opciones de registro:

 1)  Versión Full. (componente, generador de claves, generador de IDs)
       Funcionalidad total. Solo es necesaria la registración del generador de claves y de IDs.
       Se obtienen ofertas especiales a muy bajo costo para futuras actualizaciones.

2)  Nuevo !!!
     Versión Full con codigo fuente. (componente, generador de claves, generador de IDs,     +Codigo Fuente !!!)
     Funcionalidad total. Incluye código fuente !!!
     Se obtienen dos meses de soporte técnico gratuito, y actualizaciones gratuitas por un año.
 

Para registrarse, por favor visite el siguiente sitio web:

            http://www.getsoftware.com/cgi/products.gs?vendor=346
            http://www.getsoftware.com/cgi/products.gs?vendor=346

 o directamente a la opción 1)

            http://www.getsoftware.com/cgi/verify.gs?cart=1554
            http://www.getsoftware.com/cgi/verify.gs?cart=1554


Sección adicional:
 

>> Usted puede saltear esta parte. La explicacion del funcionamiento interno provee una pauta de la confiabilidad del sistema, pero no leer esta sección no debería impedir su uso <<
 

Documentación de las propiedades del componente:
  Descripción breve de las propiedades del componente:

Métodos

 

Propiedades

 

Generando identificadores de autenticidad:
 

 

La solución: Identificadores de autenticidad
 

Como genero los identificadores de autenticidad ?
 
IDGenerator looks like
 
 

Este generador requiere:

 


DISCLAIMER y LEGALES 
Este software no tiene ninguna garantia de funcionamiento implícita o explicita por parte del autor. 
El uso de este software es bajo cuenta y riesgo de los usuarios. 
El siguiente paquete de distribuición puede ser copiado con propósitos de evaluación, mientras no sea modificado en ninguna de sus partes y sea distribuido como un conjunto. 
Bajo ninguna circunstancia es posible la venta de este software (o cualquiera de sus partes) sin el consentimiento escrito del autor. 
La presente nota se refiere unicamente a la version de demostración, por favor lea la sección de registro para obtener mas información sobre este punto.
El uso de este software implica la aceptación de los puntos anteriores. 
Reinaldo Yañez Arrey se declara único propietario de los derechos de autor de este software. 

 
 
 
 

Notas adicionales:
 

(C)opyright  2000, Reinaldo Yañez Arrey.
Buenos Aires, Argentina.
rya@labs.df.uba.ar
ryaayr@yahoo.com
 
 
 

IMPORTANTE: Limitaciones de la versión demo:
 

1) El paquete de instalación para la versión demo NO incluye el programa generador de identificadores únicos.

2) Los mensajes de 'registrado', 'no registrado' aparecen con el siguiente texto adicional que no puede removerse:

This program was copy protected using a Demo version of Protect for Delphi
A protection of this kind is NOT ALLOWED for commercial use.
(C)opyright 2000, by Reinaldo Yañez.
e-mail: rya@labs.df.uba.ar, ryaayr@yahoo.com

3) En el entorno de Delphi, al abrir cualquier proyecto que contenga un componente del tipo TProt4Delphi, aparecerá un mensaje con el texto:
'Reminder: Prot4Delphi component is NOT registered.'
el mensaje se repite cada 30 segundos.

4) La property CheckSecurityEachNSeconds se ha desconectado.
    La seguridad se verifica cada 60 segundos.

5) La property SupportedCapabilities retorna correctamente solo las 2 primeras características (Características Número 0 y Numero 1). Las demás se retornan como NO SOPORTADAS. En el generador de claves sólo se puede utilizar estas 2 características.
 
 

(C)opyright  2000, Reinaldo Yañez Arrey.
Buenos Aires, Argentina.
rya@labs.df.uba.ar
ryaayr@yahoo.com
 
 

Acerca del autor:

 Actualmente soy estudiante de ciencias fisicas de la UBA. Trabajo para una empresa de programación que se dedica principalmente al desarrollo de software de gestión y control. En el trabajo programo principalmente en Delphi y C. Para mis proyectos, en Delphi, C, C++ y assembler.
Mi direccion fija de e-mail (por el momento :)  es rya@labs.df.uba.ar
Con respecto al sistema que presento, hice hace varios años una version para DOS que directamente encriptaba el codigo del ejecutable (ya compilado).
Cuando me pasé al extraordinario Delphi (dicho sea de paso) quedó pendiente el tema de la distribución de mis propios programas. Ya no me era posible pasarlos sin algun temor. (Me gusta que se respete el Copyright)
De esa necesidad propia surgió este componente que en el estado actual es mas que robusto. El unico problema es que no tengo demasiado tiempo para diseñar el driver para hacerlo funcionar en Windows NT.
Pido disculpas por la documentación un tanto mal diseñada (me doy cuenta un poco tarde), pero pronto comienzo a estudiar para los finales de la facultad y no tengo tiempo de arreglarla. Espero que de todas formas sea de ayuda.

Para los "especialistas": el componente utiliza encripción segura de nivel industrial. El paquete de encripción es un block cipher de 64 bits de datos y 384 bits maximos de clave. Tiene 128 Kbytes de S-BOXES randomly generated. (Y si, no creo demasiado en las human-made S-BOXES !!)
 

(C)opyright  2000, Reinaldo Yañez Arrey.
Buenos Aires, Argentina.
rya@labs.df.uba.ar
ryaayr@yahoo.com