Copyright: Erich B³hler 1995


WINCATRAZ V1.01B
Que es Wincatraz?

Como utilizar Wincatraz

Los parámetros

Los parámetros extras

Licencia de uso

Presionando sobre el texto subrayado, puede acceder a más información.


QUE ES WINCATRAZ
Que es Wincatraz?

Wincatraz es la solución para proteger sus ejecutables WINDOWS  contra
copia.
Es de muy sencillo uso,  y  puede  ser  accedido desde una gran gama de
lenguajes, debido a estar incluído dentro de una librería dinámica (DLL).

La idea fundamental de WINCATRAZ,  es que usted se despreocupe por la
protección de sus archivos ejecutables,  y  pueda  centrar  su  atención en
puntos de mayor importancia.

El  programa  ha  sido testeado  y  no se han encontrado errores.  No obs-
tante, si encuentra alguno puede enviarlo a la siguiente dirección:

Internet : EBUHLER@netgate.comintur.com.uy


Como utilizar Wincatraz

Wincatraz es de muy fácil utilización, debido a que esta incluído dentro de
una librería dinámica (DLL).
Para  hacer  uso  de  WINCATRAZ,  debe  declarar ésta como una función
externa.

A continuación se exponen varias declaraciones para varios lenguajes:

VISUAL BASIC

Declare Function Wincatraz Lib "Winz.dll"  (ByVal crc As String)  As Long

C/C++

extern long int WINCATRAZ(LPSTR);

Borland Delphi

Function  WINCATRAZ(crc:pchar):longint; far; external 'WINZ';

Si no encuentra la declaración  de  la  librería para su lenguaje  de  progra-
mación, remitase a la documentación del mismo.

Nota: La librería 'WIZ.DLL' debe estar copiada dentro del directorio SYSTEM de Windows.

Llamando a Wincatraz.

Para llamar a Wincatraz, debe  hacerlo de la siguiente forma:

(Sintáxis)

WINCATRAZ("<parámetro>")


LOS PARAMETROS
Los parámetros

Wincatraz acepta 2 tipos de parámetros:

1	Los parámetros que ejecutan una acción.

2	Los parámetros que devuelven un valor.

El parámetro ACCION 0.

Asignándole  el  valor  0  (cero)  al  parámetro ACCION,  se  despliega una
ventana que exhibe el  CRC  del  PC actual,  y el  valor  que  WINCATRAZ
deberá devolver si se encuentra en la máquina correcta.

Ejemplo:

Dim variable as LONG

variable = Wincatraz("ACCION=0")

Ventana desplegada al ejecutar Winzatraz("ACCION=0")

Como muestra la figura,  también  es  posible grabar esta información  en
un  archivo de texto,   o  imprimirla  (botón de grabar e imprimir respectiva-
mente).

Siempre que desee saber el CRC del PC actual, llame a WINCATRAZ con
el parámetro ACCION=0.

El parámetro CRC.

El  siguiente  ejemplo exhibe como pasarle a  WINCATRAZ el valor  de  un
CRC previamente leído con ACCION=0.

Sintáxis:

variable = WINCATRAZ("CRC=<número de CRC>")

Llamando  a  WINCATRAZ con el  valor de CRC,  retornará  un  valor único
(verificador), que será posteriormente utilizado para verificar  si  se encuen-
tra  en  la máquina deseada.

Ejemplo:

Dim RETORNO as long
RETORNO = Wincatraz("CRC=283738291")

El siguiente ejemplo, muestra como controlar que su programa se esté
corriendo en la máquina deseada.

Dim RETORNO as long

RETORNO = WINCATRAZ("CRC=283738291")    ; Retorna el valor
                                                                       ; 192873673 en la
                                                                       ; máquina correcta.
IF RETORNO <> 192873673 THEN GOTO bootear

Este  ejemplo  le quita seguridad a su programa, ya que  se  podría  llegar
a desproteger en otro PC, debido a que se puede deducir el valor de retor-
no.

El  ejemplo exhibido a continuación brinda mayor seguridad,  debido a que
no es posible deducir el valor esperado.

Imagine que su programa debe inicializar la variable BASE con el valor 20,
y que si BASE no contiene este valor, el programa no funcionará de forma
correcta.

Dim RETORNO as long
Dim BASE as long

RETORNO = WINCATRAZ("CRC=283738291")    ; Retorna el valor
                                                                       ; 82679288 en la
                                                                       ; máquina correcta.
base=82679268
base=RETORNO-base

En este caso, BASE utilizará a el valor retornado para asignarse su valor.

Si el programa no se ejecuta en la máquina correcta,   BASE  podría tener
un  valor  aleatorio,  y por ende,   sería  dificultoso  poder  deducir  el  valor
posible de la variable BASE.

Es  recomendable  utilizar  varios  llamados a  WINCATRAZ  en diferentes
puntos  de su programa,  y  que utilicen un valor diferente de CRC en cada
llamado.
Además, es  importante que utilice el valor de  RETORNO  para  procesos
importantes.
Visto que  WINCATRAZ siempre genera un número distinto de CRC (al ser
llamado con ACCION=0),   es recomendable que compare al inicio del pro-
grama si el retorno es el esperado,   y  que luego durante el programa  rea-
lice otras llamadas con diferentes valores de CRC,  y  utilice  el valor de re-
torno para procesos vitales.

Ejemplo:

Dim RETORNO as long

RETORNO = WINCATRAZ("CRC=283738291" ) ; Retorna el valor
                                                                     ;192873673 en la
                                                                     ; máquina correcta.
IF RETORNO = 192873673 THEN
    RETORNO=WINCATRAZ ("ACCION=1")       ; Genera error general
    .                                                                ; y sale del programa.
    .
    .
    .
    .
RETORNO=WINCATRAZ("CRC=83729283")     ; Retorno = 293792038
    .                                                                ; base=retorno-293792018
    .                                                                ; Utiliza el valor de retorno
    .                                                                ; para una acción impor-
    .                                                                ; tante.
    .
    .
    .
    .
RETORNO=WINCATRAZ("CRC=282739267")   ; Retorno = 19283976
variable_importante=retorno-19283936              ; Utiliza el valor de retorno
    .                                                                ; para una acción
    .                                                                ; importante.
    .


LOS PARAMETROS EXTRAS
Los parámetros extras

WINCATRAZ ofrece 2 parámetros extras:

El parámetro ACCION 1.

Llamando a WINCATRAZ con este parámetro,  se  genera un error de  pro-
tección general de Windows, y se para la ejecución del programa.

Ejemplo:

Dim RETORNO as long

RETORNO = wincatraz("CRC=283738291")

IF RETORNO = 192873673 THEN
RETORNO=Wincatraz("ACCION=1")           ; Genera error general, y
                                                                ; abandona la ejecución
                                                                ; del programa.

El parámetro ACCION 2.

Llamando a WINCATRAZ con este parámetro, se  produce que se cuelgue
la aplicación, y se pare la ejecución  del programa.

Ejemplo:

Dim RETORNO as long
RETORNO = Wincatraz("CRC=283738291")

IF retorno = 192873673 THEN
RETORNO=llave("ACCION=1")                  ; Cuelga la aplicación.

Controles recomendables.

Es recomendable que antes de llamar a WINCATRAZ,  controle el largo de
la librería.
Como norma estándar,  renombre 'WINZ.DLL'  a un nombre mas de acorde
a su aplicación.


Licencia de uso

Wincatraz (R) v1.01b para Windows (TM), es un programa creado  y  regis-
trado por Erich Bühler.

Wincatraz es de libre distribución, y no necesita el pago de licencia.

Ninguna parte de WINCATRAZ (R)  puede  ser   modificada sin la autoriza-
ción por escrito de su autor.
Cualquier  violación  de  todas o  algunas de las normas expuestas,  serán
sancionadas por las leyes correspondientes.

El autor no se  hace responsable  por  ningún  daño que se pueda  generar
por mal  funcionamiento del  programa,   ni garantiza la seguridad  ofrecida
por el mismo.

La  utilización  del  programa,  da  por  entendido  de  la  aceptación de  la
licencia.

Copyright Erich Bühler 1995.
Todos los derechos reservados.