home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 25 / nopv25.iso / 040A / KC200.ZIP / KEYCODE.DOC < prev    next >
Encoding:
Text File  |  1996-04-06  |  10.2 KB  |  243 lines

  1.                             KeyCode (c) 1995-1996
  2.                                      by
  3.                                 Bob Westcott
  4.                                   1:147/48
  5.  
  6. What is KeyCode:
  7.      KeyCode is a Turbo Pascal Unit (TPU) that will create a registration
  8.      Key and also Decodes the registration key.
  9.      Also has the ability to make and decode demo keys (Registered version)
  10.  
  11. Who can use this software:
  12.      Anyone who codes in Turbo Pascal version 6.00 or 7.00.
  13.  
  14. Can this Registration Key code be broken:
  15.      I believe that all codes can be broken, but this is a random code that
  16.      is VERY VERY hard to break.  In fact if you can break this code please
  17.      send me the how this code is derived and I will send you 'FdMsg'
  18.      registered free.  FdMsg is a NetMail/EchoMail message maker.
  19.      To show you how random it is, make the same key 3 times and the odds are
  20.      the the key will look diferent EACH time!!! AND the key will still only
  21.      be good for ONE user!!!!
  22.  
  23. What are some of the features of this program:
  24.      Coded into this software is a Program ID, Registration ID, User Name.
  25.      (End Demo date code on registered version).
  26.      What this gives you is that this program can be used to make keys
  27.      for all your different programs by changing just the program ID.  The
  28.      advantage of this is that you can keep the same registration ID of each
  29.      user.  I use the User's FidoNet Address a lot and using this method I
  30.      can keep the same Registration ID for the same user.
  31.      You also have a field that you can enter your program name and this is
  32.      also encoded into the key and is also checked.  It also becomes the 
  33.      name of the key file.
  34.      This program creates 6 lines of information and ALL 6 LINES are checked
  35.      to insure that the key is valid!!!
  36.  
  37.      If you register this code the 4th line changes to 
  38.      "Key created by xxx..." this becomes anything you want from your
  39.      name or anything else you want.  Also you will get what I call a 
  40.      MasterCode.  This will allow you to give a master key (for whatever
  41.      reason you like ie; you like them :-) or extra $$$) to some of 
  42.      your users.
  43.  
  44. Why should I use this key maker/decoder and not the one I have:
  45.      Has your keys EVER been broken or someone made a phoney key maker?
  46.      If this has happen to you then you need this software.  I have been
  47.      writing software for BBS's and the FIDO area since the mid 80's.  I 
  48.      have also used registration key for my software and over the years this 
  49.      program (KeyCode) has become better and better.  This code has NEVER
  50.      been broken as of yet, nor has a phoney key maker ever been made!!!
  51.  
  52. Why a TPU unit and not a program:
  53.      First this way I am the only one with the code and therefore the code
  54.      cannot be leaked out.
  55.      Second and the most important reason is that you can use this unit in
  56.      your programs to check if the key the user is using is valid....
  57.      The same TPU unit is used to make the key and check the key.
  58.  
  59. How many programs can I make keys for:
  60.      Over 100,000 different programs can use this key.  Therefore someone
  61.      else using this method more than likely will not come up with a valid
  62.      key for your programs.
  63.  
  64. How many different keys can I make for each program:
  65.      Keys can be up to 200 charactors long.  Therefore the combinations is
  66.      in the billions.  I recommend keys to be about 8 charactors long.  This
  67.      will give you 99 million keys for each program.  These numbers are only
  68.      if you used numbers.  If you used numbers & letters this will make the
  69.      count much higher.
  70.  
  71. How do I use this program
  72.      NOTE:  You received 2 *.TPU units with this package.  One named
  73.      KEYCODE6.TPU and the other named KEYCODE7.TPU.  These 2 different
  74.      units are used for Pascal 6.0 or Pascal 7.0.  COPY the one you 
  75.      need to KEYCODE.TPU.  These units will only work with Pascal 6.0 OR
  76.      Pascal 7.0!!!
  77.  
  78.      1.  Lets talk about making a registration key.
  79.          Since this is a TPU you must place the name KeyCode under Uses
  80.             in a key making program.
  81.          Next the Procedure call CodeIt will make the key. It has 4 fields.
  82.          The first field is the FileName you want the key file to have. Do
  83.             NOT use any extension.  If you use MyProg then the KeyFile
  84.             name will be MYPROG.KEY.  Remember legal Filenames only!!!
  85.          The Second Field is the program ID and MUST be 3 charactors long.
  86.             Any keyboard typable charactors are legal. This code IS case
  87.             sensitive.
  88.          The Third Field is the Key ID and can be any typable keyboard
  89.             charactors.  Best to keep this about 8 charactors.  This code
  90.             IS case sensitive
  91.          The Forth Field is the Registered Users name.
  92.          You may make any of the fields a Null if you like.
  93.             The Filename field defaults to "Test"
  94.             The Program ID field defaults to "***"
  95.             The User ID field defaults to "John Doe"
  96.             The Registration field defaults to "12345678"
  97.             It is best to use ALL fields for security reasons do not make
  98.             any of them null.
  99.  
  100.          Here is an example program to make a registration key.
  101.          This program is included in the ZIP file.
  102.          Insure the KEYCODE.TPU is in the same directory as this program
  103.  
  104.          We will assumed that I entered:
  105.          KEYMAKE 1:147/48
  106.  
  107.  
  108.          Program
  109.               KeyMake;
  110.  
  111.          Uses
  112.               KeyCode;
  113.  
  114.          Var
  115.               A,B,C,D,Reg:     String;
  116.               f:                 Text;
  117.  
  118.          Begin
  119.               C := '';
  120.               C := ParamStr(1);
  121.               If C = '' then
  122.               Begin
  123.                  WriteLn('');
  124.                  WriteLn('No parameter on command line...');
  125.                  WriteLn('');
  126.               End;
  127. ***--->       A := 'FdMsg';
  128.               B := 'fdm';
  129.               D := 'Mary Westcott';
  130. *--->         CodeIt(A,B,C,D);
  131.  
  132. **--->        Reg := DeCodeIt(a,b,'','');  
  133.               WriteLn(Reg);
  134.  
  135.               Assign(f,'Key.Log');
  136.               {$I-}
  137.               Reset(f);
  138.               {$I+}
  139.               If IOResult <> 0 then
  140.               Begin
  141.                  ReWrite(f);
  142.                  WriteLn(f,'                 Key Log for program ' + A);
  143.                  WriteLn(f,'');
  144.               End;
  145.               Close(f);
  146.               Append(f);
  147.               WriteLn(f,'User: ' + D + '  Reg #: ' + C + '  Program #: ' + B);
  148.               Close(f);
  149.          End.
  150.  
  151.          Of course this is a very simple program and you can make it better
  152.          if you like.  Notice I have made a few lines that make a log for you 
  153.          each time you make a key.  Something like this is needed to keep 
  154.          records.
  155.  
  156.          *--->   This is the line that calls the KEYCODE unit that makes
  157.                  the key.
  158.  
  159.          **--->  This is the line that calls the KEYCODE unit that decodes
  160.                  the key.  (see below for discription).
  161.  
  162.          ***---> IF YOU HAVE a registered version this line is where your
  163.                  demo date will go
  164.                  Change it from A := 'FdMsg';
  165.                  To:            A := 'FdMsg|03/31/96';
  166.                  Month, day, and year fields MUST be 2 charactors long.
  167.                  Valid date are YOUR job...
  168.                  This makes a demo key that will end on 03/31/96.  You must
  169.                  have the pipe charactor before the date for this to work...
  170.  
  171.          The above example will give you a key with the file name of 
  172.          FDMSG.KEY.  The program ID is fdm and the registration key is
  173.          1:147/48 because that is what I entered on the command line.  
  174.          The key is has been made for "Mary Westcott".
  175.  
  176.          The Registration key file is 6 lines long.  ALL 6 lines are checked
  177.          when decoding is done and ANYTHING that is not correct will cause
  178.          a BadKey code to be returned to the program.
  179.  
  180.      2.  Now lets talk about DeCoding the registration key.
  181.          The call to the KEYCODE unit to decode the key is a function and
  182.          has the same format:
  183.  
  184.          Reg := DeCodeIt(A,B,C,D);
  185.  
  186.          A = Filename
  187.          B = Program ID
  188.          C = Registration ID
  189.          D = Users Name
  190.          This function returns a string.
  191.  
  192.          Lets use the above KEYMAKE code to show how we would decode the
  193.          key that it makes.
  194.  
  195.          Reg := DeCodeIt('FdMsg','fdm','','');
  196.  
  197.          Note fields ARE CASE sensitive and field C & D are nulled .
  198.  
  199.          What you will get back is as follows:
  200.  
  201.          NoKey      If no key is found.
  202.  
  203.          BadKey     If key is found but it is invalid.
  204.  
  205.          EndDemo~04-01-95    If the Demo date has been passed and you have a
  206.                              registered version.
  207.  
  208.          EndDemo~BackDated   If someone tries to back date the computer to
  209.                              override demo date.  NOT 100%, better than
  210.                              nothing<grin> .  Registered version only.
  211.  
  212.          GoodKey~1:147/48~Mary Westcott      If the key was valid.
  213.  
  214.          DemoKey~1:147/48~Mary Westcott~03/31/96  If this was a demo key
  215.                                                   and date had not been
  216.                                                   passed.  Of course you
  217.                                                   must be using a registered
  218.                                                   version to receive this
  219.                                                   message.
  220.  
  221.          When you make the call and enter data into field C and/or D it
  222.          will check thoses fields also...
  223.  
  224.          Example:
  225.          Reg := DeCodeIt('FdMsg','fdm','1:147/58','');
  226.  
  227.          We would get a return of BadKey since field C is looking for
  228.          1:147/58 not 1:147/48 that is in the key.  
  229.          The same holds true for field D.
  230.  
  231. Bob Westcott
  232. Rt #1 Box 231A
  233. Macomb, OK  74852
  234.  
  235. voice      405-333-2252
  236. data(BBS)  405-333-2424
  237. FAX        405-333-2424
  238.  
  239. FidoNet    1:147/48
  240. Internet   westcott@telepath.com              (for E-Mail)
  241.            http://www.telepath.com/westcott   (for web pages to D/L software)
  242.  
  243.