home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / pc / crack / zapper.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  5.6 KB  |  94 lines

  1.  
  2.  
  3.  
  4.  
  5.            ___________________________________________________________________
  6.                     
  7.                                         THE ZAPPER
  8.           
  9.                                     Volume 1, Number 1
  10.                         For Registered Users Of FreeSoft Products
  11.            ___________________________________________________________________
  12.           
  13.                                 Copy Protecting Diskettes
  14.                                 -------------------------
  15.           
  16.           The Ultra-Format program has the capability to format diskettes that 
  17.           cannot be copied by DOS's DISKCOPY utility.  This article will 
  18.           explain how to use the Ultra-Format program to produce copy-protected 
  19.           diskettes.
  20.           
  21.           The whole idea behind producing copy-protected diskettes is to know 
  22.           exactly what DISKCOPY can and can't duplicate.  Specifically, 
  23.           DISKCOPY looks for and copies only the following:
  24.              1) Side 0 and Side 1
  25.              2) Tracks 0 to 39
  26.              3) Sectors 1 to 8 (512 bytes each).
  27.           
  28.           Knowing this, it is easy to confuse DISKCOPY by formatting a diskette 
  29.           outside of these "normal" limits.  Although we certainly can't format
  30.           more than two or less than one diskette sides, there are a number of 
  31.           other approaches we can take.  All disk drives we have used, for 
  32.           instance, have been able to format 1 or 2 more tracks than the 
  33.           manufacturer specifies.  On your IBM-PC, you could actually format 
  34.           tracks 40 and 41 if you wanted to.  Since DISKCOPY does not look for 
  35.           these tracks during a backup, (and, by the way, neither do many 
  36.           "pirate" backup programs), any copies made will not contain the 
  37.           information in these tracks.  Although, due to the way DOS handles 
  38.           free disk space, the extra tracks can't be used for programs or 
  39.           files, you can use the sectors in these tracks to contain special 
  40.           passwords.  Use the FORMAT STANDARD TRACK option in Ultra-Format to 
  41.           format a track 40 on a scratch diskette.  Then, using Ultra-Zap, go 
  42.           in with the DISPLAY/MODIFY DISK SECTOR function to insert a secret 
  43.           password into one of that track's sectors.  If your program has the 
  44.           ability to read a raw disk sector, this password can be checked for 
  45.           validity.  We will discuss this "read a sector" function in more 
  46.           detail later.
  47.           
  48.           Another good way to fool DISKCOPY is to format a standard track of 8 
  49.           sectors of 512 bytes each, but numbered weirdly (Sectors 32, 34, 5, 
  50.           93, 87, 2, 14, and 201, for instance).  Again, a password can be 
  51.           inserted and later verified in one of these sectors.  Remember that 
  52.           DISKCOPY expects the sectors to be numbered consecutively from 1 to 
  53.           8 and won't copy any others.
  54.           
  55.           Finally, you can also format a track containing sectors of a 
  56.           different length than 512 btyes.  The disk controller circuit in your 
  57.           IBM-PC has the ability to format sectors of either 128, 256, 512, or 
  58.           1024 bytes each.  You can forget about formatting a track of ten 1024 
  59.           byte sectors, though - there just isn't enough room on a track.  A 
  60.           good rule of thumb is to format sectors in relation to their size.  
  61.           That is, four 1024 byte sectors per track, eight 512 byte sectors 
  62.           per track, sixteen 256 byte sectors per track, or thirty two 128 byte 
  63.           sectors per track.  All of these combinations give the same number of 
  64.           available bytes for data.
  65.            2)
  66.           
  67.           When using sectors of other than 512 byte lengths, there is another 
  68.           matter to consider.  Several bytes in the Disk Parameter Table will 
  69.           have to be fiddled with in order to format a track correctly.  If you 
  70.           don't adjust these values, the resulting track will contain CRC 
  71.           errors.  CRC (cyclic redundency check) is just a checksum that is 
  72.           used by the disk controller circuit to confirm that data is being 
  73.           read properly.  Of course, you could purposefully format a track with 
  74.           CRC errors, try to read a sector, and verify that it is a non-pirated 
  75.           copy when it returns a CRC error code.  To do this, just format a 
  76.           track using the FORMAT NON-STANDARD TRACK option in Ultra-Format.  
  77.           When specifying sectors, go ahead and specify the first 7 sectors as 
  78.           would be found in a standard track (logical sector numbers 1 through 
  79.           7 with a length value of 2).  On the eight sector, specify a length 
  80.           value of 3 (meaning 256 bytes).  When sector 8 is later read 
  81.           (assuming the Disk Parameter Table bytes/sector value is changed to 
  82.           value 3), you should get a CRC error.
  83.           
  84.           Don't forget, when you later want to read odd-sized sectors, you will 
  85.           have to change the bytes per sector value in the Disk Parameter Table 
  86.           to reflect the sector's size.  Don't forget to restore this byte back 
  87.           to it's original value before doing other disk I/O or exiting your 
  88.           program.
  89.           
  90.           Here are the bytes in the Disk Parameter Table that will need to be 
  91.           modified before formatting oddly-sized (not 512 bytes) sectors:
  92.           
  93.           1) Byte #5 (Highest X-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-X
  94.