AVLock Gold v4.0 (c) Alcides Valega, 2002, 2003

Tabla de contenidos

 

Que es AVLock Gold?

AVLock Gold es un componente Delphi que permite convertir muy facilmente cualquier aplicación en un programa de evaluación limitado por tiempo. Además, AVLock Gold le permite:

Para transformar su aplicación en una versión trial de 30 días simpleente coloque un control AVLock Gold sobre su Form principal y escriba la siguiente linea de código en el evento OnCreate.

   AvLockGold1.execute;  

Esto es suficiente para convertir su aplicación en una versión trial de 30 días. Sin embargo, se pueden utilizar lineas adicionales para configurar algunas propiedades adaptandolo así a sus necesidades. 

^

Qué son RegKeys y KeyFiles?

AvlockGold permite manejar sus aplicaciones a través de Claves de Registración (RegKeys). Existen tres clases de RegKeys: baadas en el InstallCode, basadas en el Nombre del Usuario y Claves Genéricas. Las dos primeras son llamadas Claves regulares y tienen el formato XXXXXX-XXXXXX-XXXXXX-XXXXXX (cuatro segmentos de seis caracteres cada uno), en cambio las Claves Genéricas tienen el formato XXXXX-XXXXX-XXXXX-XXXXX (cuatro segmentos de cinvo caracteres cada uno).

Claves basadas en el InstallCode: Estas Claves estan pensadas para proteger su aplicación comparando el InstallCode calculado en base a características de su computadora (vea la propiedad InstallCode) con el InstallCode encriptado dentro de los RegKeys guardados en el RegFile.

Claves basadas en el Nombre del Usuario: Estas Claves estan pensadas para proteger su aplicación comparando el código UserID calculado en base al nombre de usuario solicitado a su usuario con el UserID encriptado dentro de las REgKeys en el RegFile. Estas Claves son menos seguras que las basadas en el InstallCode pero tienen la ventaja de no ser dependientes de la máquina (la PC del usuario). Algunos clientes no estan dispuestos a adquirir software dependiente de la máquina.

Claves Genéricas: Este tipo de Claves permite registrar aplicaciones para muchos usuarios con la misma Clave de registración evitando así tener que realizar la tediosa tarea de generar una clave diferente para cada usuario. Estas Claves solo comparan el AppID guardado el el archivo exe de la aplicación con el existente en la clave de registración (RegKey) que el usuario está intentando registrar, y eventualmente este también puede chequear el número de Versión (VersionID). Son más inseguras que las Claves regulares pero mucho más eficientes.

KeyFiles: Ocasionalmente su usuario podría necesitar registrar varios módulos a la vez, para realizar esto en una forma eficiente es posible generar un archivo de texto con extensión *.avk con todas las Claves de registración necesarias dentro para ser enviado a su usuario. El único requisito es que si se incluye una clave para el módulo principal (módulo 0) este debe estar arriba en primer lugar. Si el periodo de evaluación ya está expirado es necesario que incluya una Clave para el módulo principal antes de las Claves para los demás módulos. PAra más detalles vea la descripción para la utilidad KeyWizzard.

^

Que son RegFiles, ControlFiles y RegistryKeys?

AvlockGold genera automáticamente dos archivos en el sistema del usuario llamados xxxxxxxx.avr (el archivo RegFile)y xxxxxxxx.avc (el archivo ControlFile), donde xxxxxxxx es un valor string calculado en base al número AppID.  El archivo RegFile mantiene en forma encriptada toda la información de registración y algunos otros valores para asegurar solo la utilización legal de su aplicación. El archivo de control ControlFile mantiene la lista de usuarios que actualmente están utilizando su aplicación. Cuando la cantidad de estos excede al valor de la propiedad maxusers, el usuario recibe un mensaje "Demasiados usuarios activos" y la aplicación deja de ejecutarse.

RegistryKey es una CLave del registro de Windows creada automaticamente cuando la aplicación se ejecuta por primera vez, con el único objetivo de permitir detectar en las siguientes ejecuciones que la aplicación ya se ha ejecutado alguna vez. Esto evita que el periodo de evaluación pueda ser reinicializado ilegalmente borrando las archivos REgFile y ControlFile. Este riesgo se corre unicamente si la propiedad TrialMode esta asignada con tmRelative. Si el usuario intenta ejecutar su programa por primera vez desde una cuenta sin derechos de escritura sobre el registro de Windows, la propiedad TrialMode es automáticamente cambiada a tmAbsolute y el periodo de evaluación establecido a partir de la fecha de la propiedad TrialStartDate.  

^

Cómo adaptar AVLock Gold a cualquier lenguaje?

Todos los prompts y mensajes de texto utilizados en el formulario de registración y otros lugares del componente residen dentro del archivo avlockgold.res. Junto al componente AVLock Gold vienen los siguientes archivos de recursos:

avlockgold_en.rc  : Archivo de texto plano con los prompts y mensajes en Ingles.  
avlockgold_sp.rc  : Archivo de texto plano con los prompts y mensajes en español.  
avlockgold_en.res : Archivo de recursos compilado para ingles.
avlockgold_sp.res : Archivo de recursos compilado para español.

 

Ud. puede editar los archivos *.rc con el Bloc de notas (notepad) o con su editor de texto favorito, después debe compilarlo con Brcc32.exe de la siguiente manera:

 

Ejecute esta linea de comando :  Brcc32.exe avlockgold_en.rc

 

Esto va a generar el archivo avlockgold_en.res

Cambiele el nombre po avlockgold.res y cópielo dentro de la carpeta del componente.

 

^

Consideraciones sobre Hacking

Con la utilidad Resource Hacker * es muy facil crackear cualquier archivo exe normal compilado con Delphi ya que todas las propiedades publicadas por cualquier componente pueden ser facilmente cambiadas, cualquier manejador de evento eliminado y cualquier respuesta a botones cambiada. Para evitar que cualquiera haga esto y pueda utilizar su aplicación ilegalmente, haga lo siguiente:

1. No utilice un manejador de evento como OnCreate u OnShow para asignar propiedades o ejecutar el método execute, en cambio puede hacerlo directamente en el archivo de proyecto (archivo dpr). Vea la aplicación demo2.

2. No asigne las propiedades en tiempo de diseño, en cambio hágalo programaticamente dentro del archivo de proyecto (dpr). Es muy importante asignar aquí un valor para AppID diferente al valor por defecto 12345. Vea la aplicación Demo2.

3. Inserte dentro de algunas rutinas ejecutadas frecuentemente las siguientes lineas:

        AVLockGold1.read;

        If AVLockGold1.expired then application.terminate;

 

4. Comprima el archivo exe de su aplicación con un compresor como UPX * o AsPack *.

* ReSource Hacker es una utilidad freeware copyright © 1999-2002 Angus Jhonson. UPX es una utilidad  freeware copyright © 1996-2001 Markus Oberhumer & Laszlo Molnar, y AsPack es una utilidad shareware copyright © 1998-1999 Alexey Solodovnikov.

^

Propiedades

AllowBackDate : Type: boolean. When this value is True then the user is able to backward the system date to reuse an expired period.

AppID : Tipo: word. Valor numérico que identifica una aplicación. Por omisión su valor es 12345 pero Ud. debe asignar un valor diferente para cada aplicación.

AppName : Tipo: string. Nombre asignado a su aplicación. Este aparece en la barra de título de la ventana de registración. Por omisión toma el valor de "MyProgram".

AppVersionID : Tipo: byte. Valor numérico para identificar la versión de la aplicación. Por omisión su valor es 1 pero Ud. debe asignar un valor diferente para cada versión distinta de su aplicación.

Authorized : Tipo: boolean. (runtime). Si es true, significa que la aplicación está registrada temporariamente.

BeginDate : Tipo: boolean. (runtime) Fecha desde la que se inicia el perioodo actual autorizado.

ColorForm : Tipo: TColor. El color de fondo del formulario de registración por omisión su color es clBtnFace.

Company : Tipo: string.  (runtime) Compañía del usuario registrado.

Days : Tipo: word. (runtime) Número de días del periodo actual autorizado.

DaysLeftToWarning : Tipo: byte. El número de días antes de expirar desde el que debe mostrarse el mensaje de advertencia, por omisión 15 días.

EndDate : Tipo: date. (runtime) Fecha en la que termina el periodo autorizado.

EmailAddress : Tipo: string. Dirección de correo electrónico donde deberá enviarse la información  del usuario que desea comprar su aplicación.

Expired : Tipo: boolean. (runtime) Cuando es True, significa que el periodo trial/authorizado ha expirado.

FirstTime : Tipo: boolean.  (runtime) Si es True If true, significa que la aplicación se está ejecutando por primera vez en essa computadora.

Font : Tipo: TFont Fuente de letra para las areas de ingreso de datos del formulario de registración.

InstallCode :Tipo: string;  Longitud: 6. (runtime)  Valor hexadecimal. Cuando su aplicación se ejecuta en la PC del usuario, AVLock Gold calcula un número hexadecimal llamado InstallCode distinto para cada PC y calculado en base a varias fuentes (vea la propiedad InstallCodeSources).  Este código debe serle enviado por los usuarios que deseen registrarse. Solo utilizados por las Claves basadas en el InstallCode. Para mayor información vea la sección "Que son RegKeys y KEyFiles?" arriba, y la descripción para la utilidad KeyWizard más abajo. 

InstalCodeSources :  Tipo: set. Esta propiedad permite determinar desde deonde se calcula la propiedad InstallCode. Estas fuentes pueden ser elegidas (una o más) entre las siguientes: Bios_SN (El número de serie del BIOS), CPU_ID (Un código desde la CPU) y  HD_SN (EL número de serie del disco rígido), RandomNumber (un número aleatorio generado la primera vez que la aplicación se ejecuta y almacenado en el RegFile). UserName (un código es calculado en base al nombre completo del usuario y almacenado en el RegFile). Si Ud. elige UserName, sus usuarios le deberán enviar el nombre completo a fin de que Ud. pueda calcular la Clave de registración.

IsLocal: Tipo: boolean. (runtime) Si es True la aplicación está corriendo en modo local, esto significa que el archivo exe de la aplicación reside en la misma computadora donde esta está ejecutandose. Si es False la aplicación está ejecutando en modo remoto desde un volumen de red.

IsTrial: Tipo: boolean. (runtime) Si es True la aplicación está corriendo en modo trial, de lo contrario lo hace en forma autorizada temporaria o permanente.

Logo : Tipo: TBitmap. Esta propiedad permite colocar su propio logo en el formulario de registración.

MaxUsers: Tipo: byte. (runtime) El número máximo de instancias simultaneas permitidas en su aplicación.

OnlineLink: Tipo: string. Dirección Web de su sitio vendedor.

Protection Level : Tipo: (plNone, plMedium, plHigh). Esta propiedad le permite establecer la funcionalidad de protección en los siguientes niveles:

plNone: Desactiva toda la funcionalidad de protección. Solo permite al usuario ingresar su nombre y compañía cuando este ejecuta la aplicación por primera vez y guarda estos dentro del archivo encriptado RegFile.

plMedium:  Solicita al usuario que ingrese su nombre y compañía cuando la aplicacion ejecuta por primera vez y guarda estos dentro del archivo encriptado RegFile. Con Claves basadas en el InstallCode, chequea este valor comparando el de la PC con el de la Clave, si no coinciden la aplicación queda en modo expirado. 

plHigh: Valor por omisión. Solicita al usuario que ingrese su nombre y compañía cuando la aplicacion ejecuta por primera vez y guarda estos dentro del archivo encriptado RegFile. Con Claves basadas en el InstallCode, chequea este valor comparando el de la PC con el de la Clave, si no coinciden la aplicación queda en modo expirado. Con Claves basadas en el nombre del usuario, solo cuando el RegFile existe y no existe RegistryKey solicita al usuario que ingrese Nombre y Compañía y verifica que estos coincidan con los encriptados en el RegFile, si no coinciden la aplicación queda en modo expirado. Todas las veces que se ejecuta guarda la fecha actual del sistema dentro del RegFile. En modo remoto cada ejecución compara la fecha del sistema con la fecha almacenada en el RegFile, si la diferencia es mayor a un día la aplicación queda en modo expirado, esto fuerza al usuario a ejecutar la aplicación en modo local en la PC donde reside el programa (servidor) al menos una vez cada dos días y asegura que no se pueda copiar el RegFile a otra PC servidora y ejecutar la aplicación en modo remoto ileglmente.


RegFilePath: Tipo: (C_RootDir, Exe_Path). Esta propiedad permite determinar donde serán creados los arcghivos RegFile y ControlFile. Si se elige C_RootDir, ambos archivos serán generados en el directorio raiz C:\ de la PC donde reside el archivo exe de la aplicación, en cambio, con Exe_Path, estos archivos serán generados en el mismo directorio donde reside el ejecutable exe de la aplicación.

RegistrationWays : Tipo: set of (rwOnline, rwEmail, rwOther). Esta propiedad permite mostrar en el formulario de registración el método de venta mas apropiado a sus necesidades. Las opciones pueden ser: a) rwOnLine: para acceder a su sitio vendedor mediante la derección web ingresada en la propiedad OnLineLink. b) rwEmail: para enviar un mensaje de correo electronico a la dirección asignada a la propiedad EmailAddress, y  c) rwOther: Para mostrar un texto con otro método para comprar su producto. Por omisión el texto dice "Otro método" pero se puede cambiar editando el archivo de recursos *.rc, recompilandolo y reemplazando con el archivo *.res resultante el archivo avlockgold.res del componente.

Registered : Tipo: boolean. (runtime) Si es True, la aplicación está permanentemente registrada.

RegUserName : Tipo: string. (runtime) Nombre de Usuario registrado para la aplicación.

RequestNameOnStart : Tipo: boolean.(runtime) Si es True (valor por omision) cuando la aplicación corre por primera vez se le requerirá al usuario que ingrese su nombre y compañía y se guardarán estos valores encriptados en el RegFile.

ShowProgress : Tipo: Boolean. Si es True el formulario de registración muestra una barra de progreso con la posición de la fecha corriente dentro del periodo adutorizado y las fechas de inicio y fin de este periodo.

TrialBeginDate : Tipo: TDate.  Fecha de inicio del periodo de evaluación. Solo aplicable cuando la propiedad TrialMode es tmAbsolute.

TrialDays : Tipo: word. (runtime) Numero de días para el periodo trial inicial. por omisión 30.

TrialMode : Tipo: (tmAbsolute, tmRelative). Determina el tipo de trial que se generará cuando la aplicación se ejecute por primera vez. Si elige tmAbsolute el trial comenzará en la fecha de la propiedad TrialBeginDate, en caso contrario si elige tnRelative el trial va a comenzar en la fecha del sistema al momento de ejecutarse la aplicación por primera vez. tmRelative es más flexible y apropiado pero tnAbsolute más seguro para evitar ataques de crackers.

Warning : Type: boolean.  (runtime)  Si es True, significa que el texto de advertencia debe ser mostrado.

^

Metodos

Check : function Check(m,v, RKey:string):boolean; Este método retorna True si la Clave de registración RKey es correcto y el módulo coincide con el valor m dado y la versión coincide con el valor v dado. Si prefiere que estos valores no sean checkeados entonces ingrese 9999 para m t 0 para v.

EraseRegfunction EraseReg(modul:byte):boolean; Este método borra los datos de registración dentro del RegFile para el módulo modul dado, si modul=0, entonces todos los datos de registración serán borrados, por lo tanto la proxima vez que se ejecute la aplicación esta se reiniciará en modalidad trial. 

Execute : procedure Execute;

Este método realiza todas las funciones necesarias para convertir su programa en una aplicación de evaluación limitada en tiempo. Cuando esta se ejecuta por primera vez en la computadora del usuario inicializa el RegFile de acuerdo a las propiedades TrialBeginDate and TrialDays. Este método checkea el estado de registración; si la aplicación no está registrada todavía muestra el formulario de registración permitiendo al usuario que la registre, si el estado es Expirado el botón Continuar queda desactivado forzando al usuario a registrarse o cancelar la aplicación. Para más detalles sobre como utilizar este punto vea las aplicaciones Demo1 y Demo2.

 

MakeTrial:   procedure MakeTrial;

Este método genera y registra automáticamente una Clave de registración que establece el periodo de evaluación. MakeTrial debe ser invocado solo cuando la propiedad FirstTime es True. Para más detalles vea la aplicación Demo3.

 

DoExecute:  function DoExecute: boolean;

Este método muestra el formulario de registración interno del componente. Ud. puede llamarlo para invocar el formulario de registración en cualquier lugar de su aplicación. El método Execute lo llama para mostrar el formulario de registración. retorna True si el usuario presionó el botón Continue o registró correctamente una nueva Clave de registración. Para más detalles vea la aplicaciones Demo1 y Demo2.

 

ModulOk:   ModuleOk(n:byte):boolean;

Este método lee los datos de registración para el módulo n dado desde RegFile y retorna True si el módulo está registrado o autorizado por un periodo de tiempo en caso contrario retorna False (módulo expirado). PAra más detalles vea las aplicaciones Demo1, Demo2 y Demo3.

 

Read:   procedure Read;

Este método lee los datos de registración desde el RegFile y asigna estos valores a las propiedades del componente.

RegisterKey : procedure RegisterKey((Key,UsrName,Org:String):boolean; Este método puede ser utilizado para registrar una aplicación con una Clave de registración dada, nombre de usuario y Compañía. Para más detalles vea la aplicación Demo3.

WriteLastDate : procedure WriteLastDate; Este método escribe la última fecha del sistema al RegFile. Este procedimiento es llamado por el método Execute, esto permite llevar la cuenta de cual fue la ultima fecha en la que la aplicación fue ejecutada por el usuario, de esa manera si el usuario retrasa la fecha del sistema y la propiedad AllowBAckDate es False la aplicación queda en modo expirado. Para más detalles vea la aplicación Demo3.

^

Utilidades

KeyWizard.exe

Esta utilidad le permite generar Claves de registración necesarias para registrar la aplicación principal y módulos extras en las computadoras de sus usuarios. Dentro de estas Claves viene toda la información necesaria para establecer los valores apropiados a las propiedades del componente AVlock Gold dentro de la aplicación. Así, Ud. puede habilitar/inhabilitar y cambiar periodos autorizados para la aplicación principal o para los módulos extras a distancia enviando estas Claves de Registración a sus usuarios.

Para generar una Clave de registración debe seguir tres pasos con una pantalla para cada uno, a saber:

1.  TYPE: Aquí se selecciona el tipo de Clave. Esta puede ser: 

a) Permanente : Este tipo de Clave es para registrar una aplicación/módulo en forma definitiva, sin límite de tiempo.

b) Temporary : Este tipo de Clave es para registrar una aplicación/módulo en forma temporaria. Aquí se deben ingresar tres valores para determinar el periodo de tiempo a autorizar; Fecha inicial (Begin date), Cantidad de días y Fecha final (End date).

c) Unregister : Si elige esta opción la Clave generada va a borrar la información de registración para la aplicación/módulo dado. Si selecciona Main Application en la pantalla MODULE, entonces todos los módulos extras también serán borrados.

2. MODULE: Aquí Ud. selecciona el módulo que desea registrar. Estos pueden ser:

a)  para la aplicación principal (modulo 0): Aquí se le pide que ingrese el número máximo de usuarios simultaneos permitidos para su aplicación.

b) Para un módulo extra (1..254): Para registrar un módulo adicional en su aplicación.

3. GENERATE: En esta pantalla Ud selecciona la clase de Clave y a continuación ingresa algunos valores y presiona el botón Generate para agregar una nueva Clave al grupo de Claves de registración.

a) Claves basadas en el InstallCode: Si selecciona esta opción la Clave generada será basada en la propiedad InstallCode, por lo tanto se le pedirá que ingrese este valor.

b) Claves basadas en el Nombre del Usuario: Si selecciona esta opción la Clave generada estará basada en el Nombre del Usuario y se le pedirá que ingrese el nombre completo del usuario.

c) Claves genéricas: Si Ud. selecciona esta opción la clave generada estará basada en la VersionId de su Aplicación. Esto le permite a Ud. generar una única Clave para registrar todos los usuarios que tengan la misma VersionID sin importar si están basadas en el InstallCode o en el Nombre de Usuario. Si ingresa 0 para VersionID hará que la versión no sea chequeada. Vea la sección "Que son RegKeys y KeyFiles?".

Finalmente se le pedirá que ingrese el número de aplicación AppID y haga Click sobre el botón Generate para agregar una nueva Clave a la lista.

Generate button: pulse este botón para generar una nueva Clave de registración con todos los datos ingresados arriba y agregarla a grupo de Claves.

registration Keys: Esta es un area memo para agrupar todas las Claves de registración generadas que Ud. más tarde enviará a su usuario.

Clear button: presione este botón para eliminar todas las Claves de registración dentro del grupo de Claves.

Load from file button: Presione este botón para leer Claves desde un archivo de claves (*.avk) seleccionado y copiarlas dentro del Grupo de Claves.

Save to file button: presione este botón para guardar todas las Claves en el Grupo de Claves a un archivo de claves KeyFile (*.avk) dado.

RegMonitor.exe

Esta utilidad es muy útil para testear como trabaja AVLock Gold. La primer cosa que Ud. tiene aquí es la vía de acceso de registración corriente. (Registration Path). Más abajo están las dos secciones principares:

1. Applications registered with AVLock at your PC: Aquí se pueden ver las aplicaciones registradas en la vía de acceso corriente con los siguientes valores para cada una:

a) Application: El nombre de la aplicación coincidente con el valor asignado a la propiedad AppName.

b) Registered to: Nombre de usuario completo ingresado por el usuario al momento de registrar la aplicación.

c) Company: Company name entered for the user at the momment that he register your app.

d) Max users: Maxima cantidad de usuarios simultaneos permitidos para su aplicación.

2. Modules registered for the selected app on the 1 section: Aquí puede ver todos los módulos registrados para la aplicación seleccionada con los siguientes valores para cada uno:

a) Module: El número de módulo, ´Main´ para el módulo 0.

b) Registration key: La clave de registración ingresada por el usuario al momento de la registración del módulo.

c) Type: El tipo de registración. (Trial, Permanente or Temporario)

d) From: Fecha de comienzo del periodo autorizado, solo para tipos Trial o Temporario.

e) To: Fecha donde finaliza el periodo autorizado, solo para tipos Trial y Temporario.

f) Days left: Días restantes para expirar el periodo autorizado, solo para tipos Trial y Temporario.

Refresh button: Este botón actualiza la información en pantalla. Solo es necesario si se registran o eliminan aplicaciones o módulos en su PC.

Unregister button: Este botón elimina la registración para la aplicación o módulo seleccionados.

^

Demos

Demo1 : Muestra como hacer una aplicación de evaluación basada en InstallCode. Aquí utilicé la linea avlockgold1.execute en el evento OnCreate (no recomendado, ver la sección consideraciones sobre hacking).

Demo2 : Aquí se muestra como hacer una aplicación de evaluación basada en el Nombre de Usuario. Se utilizó la forma recomendada de invocar a AVLock Gold (todas las lineas en el archivo de proyecto *.dpr).

Demo3 : Permite ver como hacer una aplicación de evaluación con un formulario de registración personalizado.

^

Como Instalar AVLock Gold

1. Descomprima el archivo Zip del componente dentro de una carpeta.

2. Desde el IDE de Delphi abra el paquete AVLockGolD(x).dpk.

3. Si obtiene el mensaje "This package appears to be in an older format. Would you like to convert it to the new format?" responda No.

4. Presione el botón install. Espere hasta recibir el mensaje "The following new commponent(s) have been registered:. . ."

4. Revise su Library Path en Tools|Environment Options|Library tab. Aquí debe tener para AVLock Gold una entrada (solo una) apuntando a la carpeta donde descomprimió el componente. Si no existe, debe crearla manualmente, si hay más de una (en caso de haber instalado antes otra versión de AVLock), elimine la que no corresponda.

^

Cómo adquirir AVLock Gold.

Existen dos versiones diferentes de Avlock Gold:

1. La versión Standard:  (sin fuentes). Esta incluye paquetes para las versiones 4, 5, 6 y 7 de Delphi. Las utilidades KeyWizard y RegMonitor y las aplicaciones demo. Este paquete es muy similar al freeware con la única diferencia de que no tiene la imagen publicitaria en el formulario de registración y Ud. tiene el derecho de utilizarlo en aplicaciones comerciales.  Compre ahora

2. La versión Developer: (todo el código fuente incluido). Tiene todo lo incluido en la versión Standard más los fuentes para el componente AVLock Gold y para las utilidades KeyWizard y RegMonitor además de el paquete de componentes AVLabelPack (con fuentes) necesario para compilar las utilidades.  Comprar ahora

Cómo pasar de la versión Standard a la versión Developer?

Ud. solo paga la diferencia, por favor envíe un email a avalega@bigfoot.com

^

Contrato de Licencia de Software de AVLodk.

ANTES DE PROCEDER CON LA INSTALACIÓN Y/O USO DE ESTE SOFTWARE, LEA CUIDADOSAMENTE LOS SIGUIENTES TÉRMINOS Y CONDICIONES DE ESTE CONTRATO DE LICENCIA DE SOFTWARE Y GARANTÍA LIMITADA (EL "CONTRATO").

AL INSTALAR O UTILIZAR ESTE SOFTWARE UD. ESTA INDICANDO LA ACEPTACIÓN DE ESTE CONTRATO. sI UD. NO LO ACEPTA, O NO ESTÁ DE ACUERDO CON ESTOS TÉRMINOS, UD. NO DEBE INSTALAR O UTILIZAR ESTE SOFTWARE".

LICENCIA

EL Software AVLock, incluyendo la documentación, código fuente, codigo objeto y/o materiales adicionales (El "Software") es propiedad de Alcides Valega (El "Autor"). Este Contrato no le provee a Ud. del título o propiedad del Software, solamente le da derecho a utilizarlo de forma limitada según lo especificado en este Contrato de Licencia. El autor del Software por este medio le concede a Ud. una licencia no exclusiva libre de regalías para utilizar el Software.

Derechos de Redistribución

A Ud. se le están concediendo derechos no exclusivos libre de regalías para reproducir y redistribuir archivos ejecutables creados utilizando el Software (el "Código Ejecutable") en conjunción con productos de software que Ud. desarrolla y/o comercializa (Las "Aplicaciones").

GARANTIA LIMITADA

ESTE SOFTWARE ES PROVISTO "ASI COMO ES" SIN GARANTÍAS DE NINGUNA CLASE EXPLICITAS O IMPLICITAS, INCLUYENDO PERO NO LIMITADO A LAS GARANTIAS IMPLICITAS DE MERCANTIBILIDAD Y CONVENIENCIA PARA UN DETERMINADO PROPÓSITO. TODO EL RIESGO ASI COMO LA CALIDAD Y PERFORMANCE DEL PRODUCTO ES SUYO. SI EL PRODUCTO TUVIESE DEFECTOS UD. ASUME EL COSTO DE TODO LO QUE SEA NECESARIO PARA CORREGIR LOS ERRORES.

EL AUTOR DE AVLock NO GARANTIZA QUE LAS FUNCIONES CONTENIDAS EN EL SOFTWARE SEAN APROPIADAS A SUS REQUERIMIENTOS O QUE EL SOFTWARFE OPERARÁ DE FORMA ININTERRUMPIDA O LIBRE DE ERRORES.

----------------------------------------------------------------------------------------------------------------

Si Ud. tiene alguna pregunta en relación a este contrato, o tiene algún comentario, sugerencia, o ha encontrado errores, por favor escriba a: avalega@bigfoot.com

Author : Alcides Valega

Domicilio : Santa Cruz 1468, 3400-Corrientes, Argentina

E-mail : avalega@bigfoot.com

URL : http://avsoft.sitio.net