Copyright: Erich B³hler 1995


WINCATRAZ V1.01B
What is Wincatraz?

How to use Wincatraz

Parameters

Extra parameters

Use License

Pushing over the underlined text, you can accede to more information.


WHAT IS WINCATRAZ
What is Wincatraz?

Wincatraz is the solution to protect WINDOWS executables against copying.
It is very easy to use,  and  you  access  this function from a lot of  langua-
ges since it is included into a dynamic library (DLL).

The main idea in  WINCATRAZ is making you not to worry about protecting
your executable  files  against copying. Now you can pay attention to other
points of your programming.

The program has been tested and there weren't any errors found. But if you
find a bug please mail one of  these addresses and explain what happened
(give as much information as possible) :

Internet : ebuhler@netgate.comintur.com.uy


How to use Wincatraz

Wincatraz  is  very  easy to use since it is included into a  dynamic  library
(DLL). To use WINCATRAZ you need to declare it as a external function.

Below we show some declarations for some languages:

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';

If  you  can't  find the declaration  for  your  programming  language  library,
please  remit to the  documentation  of  the  programming  language you're
using.

Note: The file 'WIZ.DLL' must be in the Windows "System" directory.

Calling Wincatraz.

To call Wincatraz, you have to do this:

(Syntax)

WINCATRAZ("<parameter>")


Parameters

Wincatraz acepts 2 kinds of parameters:

1	The parameters that execute an action. (ACCION)

2	The parameters that return a number.

The ACCION 0 parameter.

Assign the value 0 (zero) to the ACCION parameter,  it  will open a window
showing  the  CRC of the actual PC, and the value that WINCATRAZ  must
return if the program is installed in the correct machine.

Example:

Dim variable as LONG

variable = Wincatraz("ACCION=0")

Window displayed when executing Wincatraz("ACCION=0")

Like the figure shows,  it is also possible to record this information in a text
file, or print it (record and print buttons).

Always when you need to know the CRC  of the actual PC,  call Wincatraz
with the ACCION=0 parameter.

The CRC parameter.

Next  example  shows how you can give a CRC  value  (previously obtained
with ACCION=0) to WINCATRAZ.

variable = WINCATRAZ("CRC=<CRC value>")

When  you  call  WINCATRAZ with the CRC value, it returns a unique value
(used  for  verifying),  that will be used  later  to  verify  that the  program  is
installed in the desired machine.

Example:

Dim RETORNO as long

RETORNO = WINCATRAZ("CRC=283738291")      ; Returns the value
                                          ; 192873673 if it is in the
                                          ; correct machine.
IF RETORNO <> 192873673 THEN GOTO boot

This example is a very simple one and somehow insecure and the program
might be deprotected in another PC. This  happens  because it  is possible
to know the return value.

The next example is more secure since it's impossible  to  know the return
value.

Imagine  that your program needs to initialize the  variable  BASE  with the
value 20 and if  BASE  is  not  initialized  with the appropiate value (20) the
program does not run as it should.

Dim RETORNO as long
Dim BASE as long

RETORNO = WINCATRAZ("CRC=283738291")    ;Returns the value
                                                                       ; 82679288 in the
                                                                       ; correct machine.
base=82679268
base=RETORNO-base

In this case, BASE uses the returned value to assign it's own value.

If  the program is not run in the desired machine, BASE can have a random
value,  then  it  will  be difficult to know the  possible  correct  value  for  the
BASE variable.

It is  recommended  to make several calls to WINCATRAZ at different parts
of the program and then you can use different CRC values in each call.

Besides, it is importat to use the RETORNO value for important processes.
WINCATRAZ  always  creates  a  different  CRC  value  (when  called  with
ACCION=0), so it is recommended to compare the value when the program
starts  and  check if it is the value expected and  later make  other  calls to
WINCATRAZ with different CRC values (as the examples above show)  and
to use the return value for vital processes.

Example:

Dim RETORNO as long

RETORNO = WINCATRAZ("CRC=283738291" ) ; Returns the value
                                                                      ; 192873673 in the
                                                                      ; correct machine.
IF RETORNO = 192873673 THEN
    RETORNO=WINCATRAZ ("ACCION=1")        ; Create a general error
    .                                                                 ; and exit program.
    .
    .
    .
    .
RETORNO=WINCATRAZ("CRC=83729283")     ; Retorno = 293792038
    .                                                                ; base=retorno-293792018
    .                                                                ; Use the return value
    .                                                                ; for an important action.
    .
    .
    .
    .
    .
RETORNO=WINCATRAZ("CRC=282739267")   ; Retorno = 19283976
variable_importante = retorno - 19283936          ; Use the return value
    .                                                                ; for an important action.
    .


Extra parameters

WINCATRAZ offers 2 extra parametes :

The ACCION 1 parameter.

Calling  WINCATRAZ  with  this  parameter, generates a general protection
error in Windows and stops the program.

Example:

Dim RETORNO as long

RETORNO = wincatraz("CRC=283738291")

IF RETORNO = 192873673 THEN
RETORNO=Wincatraz("ACCION=1")           ; Create general error, and
                                                                ; abort the program.

The ACCION 2 parameter.

Calling  WINCATRAZ  with  this  parameter,   generates a  "hang up" in the
system and stops the program.

Example:

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

IF retorno = 192873673 THEN
RETORNO=Wincatraz("ACCION=2")                  ; Hang up the application.

Recommended checks before installing Wincatraz.

Before calling  WINCATRAZ  it  is  recommended  to  check   the Dynamic
Library's length. If you want or you find it more comfortable you can rename
"WINZ.DLL" to a more suitable name for your application.


Use License

Wincatraz  (R)  v1.01b   for  Windows  (TM),    is  a  program  created  and
registrated by Erich Bühler.

Wincatraz is freeware, and does not requiere any kind of payment.

No  part  of  WINCATRAZ (R)  can  be modified without  the  author  written
authorization.  If you violate all or some of the conditions above you will  be
subject to criminal prosecution.

The author isn't responsible for  ANY  damage  caused by the program and
does not assure that the security offered by this program is 100% effective.
(As you might know no software protection is 100% effective).

The program utilization, include the licence agreement.

Copyright (c) Erich Bühler 1995.
All rights reserved.

"This translation was made as accurate as possible, not Erich B nor I can held responsible for

any misunderstood  in  this manual or in ANY other part of the documentation. As you might

imagine English  is  NOT my native language and I know I might have made mistakes in the

translation of the documentation. If you have ANY doubts, please mail the author.."

- Diego Martín Panizza