/this file is for UNregistered users. Some lines were snipped/



                               ANAHTARv2
                        COPY PROTECTION PROGRAM
                            Murat AYDIN 1998





Program Name: Anahtar v3
Date        : 1999-March
Purpose     : Copy protection
Special Req.: None
Author      : Murat AYDIN Ph.D.
Address     : Kurtulus mah., 19 sk., 48/1 Adana-Turkiye
E-mail      : m-aydin@usa.net
            : muratay@hitit.bimel.com.tr
Tel         : +(322) 453-62 62, +(322) 453-18 33
Note        : This program can be used by software programmers only.
Shareware   : Yes

INTRODUCTION:
        Software piracy is a world-wide problem. Unfortunately, neither
laws nor individual conscience seem to be adequate deterrents. How can
programmers prevent the unauthorized use of their software?

METHOD:
        One safe method is to generate a key disk which is readable only
by your program. This is the approach taken by Anahtar. Simply, Anahtar
embeds a password onto a disk which only a programmer can detect through
his/her own program. If the password is not made available when called
for, the program will end.

PROTECTION:
        1. The main program asks for the key disk on each loading, but,
not each running. (Both are different.)
        2. The key disk can be coded for an individual user as well as
the specific program. Thus, two different disks for the same program are
not interchangeable. The program will only work in response to the
user's unique disk.

KEY disk:
        1. can not be destroyed by FORMAT command.
        2. can not be copied by known methods, (or, is very difficult to do !)
        3. continues to serve its intended purpose,(reads & writes file(s))
           even after formatting.
        4. does not contain bad sector(s), its capacity remains at 1.44 Mb
        5. works even if it's zero track is bad
        6. can be deleted at any time by programmer (new)
*********************************************************************

What you received in the original package (Anahtar.zip):
        1. Anahtar.exe
        2. Reader.exe  (Registered users only)
        3. Anahtar.txt (this file)
       
    If you are upgrading, you need reader.exe only. If you have not yet
    registered, you'll NOT find the file Reader.exe and some lines of
    anahtar.txt


ANAHTAR.EXE:
Makes a key disk from a standard disk. You must NOT give this file to buyers.
Simply type ANAHTAR and press <ent>. It asks you for a password:
        1. Use only ascii characters, but not function keys, del, ins, etc.
        2. Password is case sensitive
        3. It must not exceed 15 characters
        4. You may add a number at the end of the password to indicate the
specific user for the program (e.g., if program password is "THIS IS TRUE",
you may type: "THIS IS TRUE-01")
        5. Keep a written record for registration purposes(e.g., 01 was sold
           to Jim Larsen)

After inputting a password, insert a newly formatted disk into Drive A and
press <ent>. I strongly advise that you use a high quality 3.5", 1.44Mb disk.
If your disk is rejected try a better quality disk and repeat this step.
Finally, a key disk will be produced.


WHAT YOU NEED IN YOUR PROGRAM: (here xx are snipped data)
        You will put the value "xxx" into address x:xxxx, then jump to
Reader.exe with the SHELL command. Reader.exe will read the key disk and
immediately return to your program. During this operation the screen will
not change or otherwise indicate to the user that anything is happening.
(You may rename reader.exe to <chr$(255)>.exe to have it hidden in the
same directory.)
        After Reader.exe has done its job your program must check the
location x:xxxx. If this location contains an error parameter (see below),
stop the program. If no error parameter is present then resume your program.

                Background: Can you read & write x:xxxx ?
                Easy, in Basic language this line reads
                the x:xxxx location in RAM:
          
                       <snip>

                This line writes the op variable to
                the x:xxxx location:

                       <snip>

The following diagram outlines the process.

Your prog.
   Start   >    
                    
  ͻ                Ŀ      Ŀ
  Put xxx into x:xxxx>Reader>Ĵ  Check the    
  Send to the Reader <Ĵ EXE  <Ĵ disk  inserted
  ͼ                      
            
    Ŀ
       Check the   
    location x:xxxx
    
            
    Ŀ
     Disk  ready ? > No >Ŀ
                 
           Yes                    
    Ŀ           Ŀ
      Is it a key > No >Exit
               
           Yes                    
    Ŀ             
    Check the area              
    x:xxxx...x:xxxx             
                 
                                 
    Ŀ              
    Password true?> No >
    
           Yes
  ͻ
   Now, start your  
  main module safely
  ͼ


READER.EXE
        Reads inserted disk and reports its status as to whether or not
it is a key disk. This file is given to registered users only.

        This file checks RAM location x:xxxx for a value of "xxx". If
this value is found, it then reads the floppy disk (4 times) for catch the
password. If any pass successfully reads from the key disk this data is
put to the location between x:xxxx.....x:xxxx. Finally, an error code
appears at x:xxxx.
IMPORTANT: Reader.exe will not operate unless "xxx" is found at x:xxxx.

Error
Codes at
x:xxxx    Means
---------    ---------------------------
xxx           Okay, no error, password was replaced upward x:xxxx
xxx           Drive not ready, disk door is open
xxx           The disk inserted by user was not the key disk
xxx           Unknown error
others    Reader.exe rejected work (you must put xxx or xxx into x:xxxx)


        Your program must now check the location x:xxxx for the returned
code. If there is not an error (i.e., code xxx) then read the password
from x:xxxx until the byte which is zero or upto xxth byte. These bytes
contain the password read from the key disk.
        If there is an error parameter (i.e. code xxx - xxx) at x:xxxx, you
may choose to: 1. Send an END command. 2. Send again to Reader.exe for
another try, or 3. Send a message to the current user (reset, format, delete
etc).

The following sample program illustrates how to implement the Anahtar program.
You dont need to write your programs with Quick Basic. Look the sample codes,
and use own commands of another computer language which you are currently using.

QB program example:
'...............................[cut from here]...........................
' *Example* program
' For this example, prepare a key disk with anahtar.exe
' While sample Password is "AbC-0007"


                      <snip>


'...............................[cut from here]...........................


  TO DELETE USER'S PASSWORD:
  With this version of Anahtar, you can destroy the user's key disk. I am not
  sure why this would be necessary, but several anahtar-users have
  specifically requested this provision. So here it is!

  IF you put xxx into location x:xxxxh and jump to the READER the user's
  key disk will never work again.  Since the key disk must be present at
  the time, you will need to request the user to insert the key disk into
  the floppy drive. This option can be implemented with the following code:



'...............................[cut from here]...........................
'at any time while your program is working
'give the belowing codes if you want to destroy user's key-disk
'


                                <snip>



'...............................[cut from here]...........................



ALTERNATIVE PROTECTION USING ANAHTAR:
        If you are enough good at machine language or, at least, if you
are familiar with that language, then you may write a small
assembler routine as a password instead. For example, the operation code
of xxxx is xxx, which is equal to xxxx. You may type the xxx from the
numeric pad of the keyboard to be any password character, and then
forward an interrupt vector through your program.

     
     
       =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

        All comments and suggestions are welcome. Please send your
comments and suggestions to the address below or e-mail them to:

Murat AYDIN, Ph.D.
Kurtulus mah., 19 sk., 48/1 Adana - Turkiye
E-mail: m-aydin@usa.net (or) muratay@hitit.bimel.com.tr

Do you like my other programs:
Name           Bytes     Description                              Where?
-----------    ------    ----------------------------------      -------------------------------------------------
CRASH_1.ZIP    29.702    Deletes a file as to be irreverible     ftp://ftp.simtel.net/pub/simtelnet/msdos/diskutil
COT_1  .ZIP     2.905    COmpuTerized external devices           ftp://ftp.simtel.net/pub/simtelnet/msdos/electrcl
SQW_2  .ZIP    45.064    Square Wave Generator with a PC alone   ftp://ftp.simtel.net/pub/simtelnet/msdos/electrcl
QURAN_1.ZIP   379.361    The holy book of muslim (English-v1)    ftp://ftp.simtel.net/pub/simtelnet/msdos/muslum
GARDEN .ZIP    48.870    Garden irrigation control program       ftp://ftp.simtel.net/pub/simtelnet/msdos/electrcl
SERINO2.ZIP    26.340    Changes serial number floppy or HDD     ftp://ftp.simtel.net/pub/simtelnet/msdos/diskutil
BIP_20 .ZIP   109.255    Identification of an unknown microbe    ftp://ftp.simtel.net/pub/simtelnet/msdos/science
CRYPTIC.ZIP    50.655    Encrypt/decrypt all types of files      ftp://ftp.simtel.net/pub/simtelnet/msdos/security
FORMULA1.ZIP    5.190    Calculates X value in formula given     ftp://ftp.simtel.net/pub/simtelnet/msdos/math
            =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


