Contributor: SWAG SUPPORT TEAM        

(*
> I finished Programming a Program in turbo pascal 7, and as some shareware
> Programs like RemoteAccess, Fastecho and more i want my Program to use a
> KEY File to know if the Program is registered or not (i will supply a key
> For every sysop according to his bbs name and his name), any examples to
> do such a Procedure?

You could do like I did in Terminate, make a big KeyFile around 4-8k and
included all kind of checksums calculated on crc-sums and the name etc.

Calculate the Crc-sums in different ways, use always the GlobalChecksum to find
out if there has been no errors in the File. If error in the global checksum:

  SetFAttr(keyFile,Archive)      { if the File has been set to readonly }
  Erase(keyFile,archive)

Ask user to install a new copy of the keyFile.

Then somebody has changed it or an error has occured.

The next things is to use a different checksum For each release you make of
your Program, then people will get annoyed over waiting For a new pirate key
and hopefully will send you some money.
The cracker cannot calculate the checksum if you have no code in the Program,
but he can crack the current version, but if you release a new version often,
people will get tired of that and pay. A checksum can be calculated in many
different ways like below:
*)
Var

  KeyRec : Record
    Crc  : Array[1..100] of LongInt;
    Name : String[80];
    GlobalChecksum;
  end;

Var
  Sum : LongInt;
  X   : Word;

begin
  Sum := 0;
  For x := 1 to Sizeof(KeyRec) Do
    Inc(Sum, Mem[Seg(KeyRec) : Seg(KeyRec) + x]);
  { This will add all ascii values to crc, the cracker will prop. find
    this out, but if you then : }
  Dec(Sum,3248967);
  { How should he find out if there is no code in your Program at the }
  { present version }
end.