home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Rising BBS / phoenixrising.zip / phoenixrising / vir-docs / nk-info6.arj / NK-INFO6.007 < prev    next >
Text File  |  1993-05-05  |  20KB  |  332 lines

  1. ===============================================================================
  2. Volume 1, Issue 6, May 1993
  3. NuKE Info-Journal #6
  4.  
  5.             NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE
  6.             uK                                                  E-
  7.             KE      "The Arms Race on Disk-Based Protection     -N
  8.             E-              Methods : Round One"                Nu
  9.             -N                                                  uK
  10.             Nu                       By                         KE
  11.             uK                  Rock Steady                     E-
  12.             KE                                                  -N
  13.             E-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-NuKE-Nu
  14.           
  15. % The `Arms Race' on Disk-Based Copy Protection Methods : Round One %
  16.  
  17. Disk-based techniques of protecting software have existed since the early 
  18. days of microcomputers. The very first microcomputers used cassette tapes
  19. to store programs and data. (Remember the C-64s old days?) The first mass-
  20. market microcomputer to use disk drives instead of cassette tapes was the 
  21. Apple-II in 1978. Its great popularity was largely due to its reliable 
  22. and inexpensive disk drive system, devised by Steve Wozniak. The disks,
  23. much faster and more convenient than cassettes, in turn made it practical
  24. to run large and complex programs. Disks became standard equipment on all
  25. but the cheapest microcomputers. The tremendous success of the IBM PC 
  26. microcomputer in the early 1980s confirmed this trend.
  27.  
  28. The history of disk-based protection methods and the of efforts to defeat them,
  29. resembles an escalating arms race, and hence the name. Early, elementary 
  30. protection techniques were countered by skilled users, some did it for their
  31. own convenience, others for the intellectual challenge. And hence, the 
  32. arms race began. The `guerrillas' of the arms race were the `software hackers':
  33. mission; to device a method for removing `cracking' the copy-protection of
  34. each new program marketed, and who then distributed the copy-able version to
  35. their friends, who passed it on, and so on. 
  36.  
  37. I have witnessed and was quite an active member of this arms race, the 
  38. intellectual challenge was the main reason of my membership. During the
  39. years I have come upon several protection techniques some I was able to
  40. easily bypass, and others that brought upon great challenge. Slowly I 
  41. began noting the several methods of disk-based copy-protection, and I also
  42. did acquire several documents on other disk-based copy-protection, and today
  43. you will read upon this very interesting concept of disk-based copy-protection.
  44. Some methods were quite frightening as it tried to perform dangerous disk-
  45. access techniques. Some methods were quite trivial, others were loops and flaws
  46. of the disk structures, and how the disk controller reacts. All the methods I
  47. was able to collect are documented bellow, a lot of time and effort was put
  48. into this, I do hope you appreciate it.
  49.  
  50. % Disk Format %
  51.  
  52. The early generation of disk protection methods depended on technical details
  53. of the diskette and disk drives. To describe the methods, it is first
  54. necessary to outline the structure of a formatted floppy. For convenience I will
  55. only use the IBM PC 5.25 inch disk, formatted by the popular PC-DOS or MS-DOS.
  56. Information is stored on the disk in a series of circles, called `tracks'. In 
  57. a normal 5.25 double density disk you have 40 series of circles, aka tracks. 
  58. Tracks are numbered from 0, being the outermost track, to 39 being the inner-
  59. most. Each track is divided into 9 arcs, called `sectors', numbered from 0-8.
  60. Each sector consists of an `address field', which identifies the sector, and
  61. a `data field', which contains the data stored in that sector. Both fields 
  62. contain a prologue, data, a checksum and an epilogue, of the information stored 
  63. in that field. Therefore, in reality DOS does NOT make the total number of 
  64. possible bytes available for your data storing. In a 5.25 DSDD (double sided, 
  65. double density) disk there really is a possible of 500k where only 360k is
  66. available for you. In a 5.25 DSHD (double sided, high density) disk, there 
  67. is 1.6 Megs, but only 1.2 Megs is available to you. In a 3.5 DSDD disk, there 
  68. is 1 Meg, but 720k is available for you. In a 3.5 DSDD disk, there is an 
  69. amazing 2.0 Megs but only 1.44Megs is available to you. 
  70.  
  71. The same applies for hard drives, ever buy a HD and it says 120 Megs, but when
  72. you format it, you only get 114 Megs? Its because of DOS, there are some 
  73. programs that enable you to use this space and get rid of the address field,
  74. that is present before _every_ sector. One popular program is called 
  75. "MAXI - Form" by Herne Data Systems Ltd. This program allows 360k floppy to 
  76. hold 420k, 720k -> 810k, 1.2M -> 1.44M, 1.44M -> 1.66M. Maxi CANNOT make use
  77. of ALL the possible number of bytes, because we MUST reserve some space for
  78. the Boot Sector, 2 copies of the FAT and the DIR Structures. However it does
  79. rid the address fields, and is compatible with DOS with the help of a TSR 
  80. program that `fools' DOS in thinking that it was structured correctly.
  81.  
  82. Now, when you `boot' off a diskette, a copy of DOS _MUST_ reside on the outer
  83. few tracks of the disk. Another Track is reserved for the file directory. When
  84. the computer is turned on, a process occurs, called `booting'. The IBM PC
  85. does not contain a built-in DOS. Its ROM contains just enough information
  86. to enable to find and read sector 0 of track 0 of the disk, which is the boot
  87. sector. That sector contains a program to read a few more sectors, which in
  88. turn contains a program to read the entire DOS into memory.
  89.  
  90. % Sector Format %
  91.  
  92. The majority of floppy disks are `soft-sectored', meaning that the software
  93. must be able to locate any given track and sector with no help from the
  94. hardware. On a `hard-sectored' disks there is a physical marker, such as a
  95. small index hole, that tells the hardware precisely where each track and 
  96. sector is physically located. On the soft-sectored disk the software
  97. searches for the desired sector by a trail-and-error process, reading the
  98. sector's address field until it finds the sector it wants. This certainly
  99. takes a little longer, but allows much more flexibility, since the sectors may
  100. be placed anywhere the DOS likes. Anyhow floppies are usually soft-sectored,
  101. but IBM 5.25 inch and 3.5 inch diskettes contain physical markers. Hard Disks
  102. usually tend to be soft-sectored, but that was only on the MFM, RLL Hard Drives
  103. the IDE, and SCSI drives are hard-sectored, that is why we have a _major_ 
  104. access time. MFM,RLL range at 50-70ms (milliseconds) IDE,SCSI tend to range 
  105. from 8-15ms. 
  106.  
  107. % Copy-protection Method #1 : Disk Appearance %
  108. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  109. % Unformatted Tracks %
  110.  
  111. The simplest protection against disk copier utilities was to include a blank
  112. (unformatted) track or sector on the disk. The disk copy utility will fail at
  113. that track and copy nothing further. This was probably the first kind of whole-
  114. disk copy protection introduced.
  115.  
  116. % Non-standard DOSes %
  117.  
  118. Although the disk cannot be copied, it will still boot and run properly as
  119. long as the DOS does not attempt to access the unformatted track. This can
  120. be easily be prevented by using a modified version of the normal DOS. When
  121. a disk is booted, the DOS on the disk replaces any that may have been in RAM.
  122. It can have any modifications the author pleases. The only requirement is that
  123. the modifications to the DOS must correlate with the modifications to the disk
  124. format. Some of theses methods are listed bellow.
  125.  
  126.   a) Altered track/sector count
  127.  
  128.      The number of tracks per disk and sectors per track are usually chosen
  129.      to provide maximum data storage per disk. There is no reason why lesser
  130.      numbers cannot be used. For example we could create an IBM disk with
  131.      only 7 sectors per track or 30 tracks per disk. And with a sightly more
  132.      complex DOS modification the number of sectors could vary from track to
  133.      track. 
  134.  
  135.   b) Altered sector size
  136.  
  137.      A normal sector on an IBM PC disk always contains 512 bytes of user data
  138.      as its payload. It is easy to alter the DOS to expect a different number
  139.      of bytes per sector. In some cases, huge sectors have been used that fill
  140.      an entire track. 
  141.  
  142.   c) Altered track/sector numbering
  143.  
  144.      Each sector on a disk has an address field containing its track number
  145.      and sector number. The DOS checks this before reading the track. Instead
  146.      of numbering the sectors on a track from 0 to 9, one could number them
  147.      from 70 to 79. The 40 tracks, likewise, could have bizarre numbering,
  148.      say the first 40 prime numbers.
  149.  
  150.   d) Altered checksums
  151.     
  152.      Each sector contains a byte which is a checksum of the data contained in
  153.      that sector. It is calculated by performing an eXclusive-OR (XOR) 
  154.      operation across all the bytes in the sector. The DOS recalculates the
  155.      checksum each time it reads a sector, and compares its value to the one
  156.      actually stored in the sector. If they differ, the DOS assumes that it 
  157.      read some byte(s) in the sector incorrectly. One can protect a disk by 
  158.      using a different algorithm for calculating the checksum to be stored in
  159.      each sector. Of course the disk's own DOS uses the same algorithm, and so
  160.      agrees with the stored checksums, but standard DOS thinks it has read 
  161.      each sector incorrectly, and will retry up to 5 times, and once all 5 test
  162.      fail it will report the message "Bad CRC Data...." error message.
  163.   e) Half-Tracks
  164.      
  165.      The newer half-height floppy drive were quite advanced, as a matter of 
  166.      fact they were capable of stepping to positions half-way between the
  167.      normal track position. These half-track positions are not ordinarily
  168.      suitable for recording data, because they are so close to the normal 
  169.      track that there would crosstalk. (Meaning signals would spill over from
  170.      the normal tracks to the half-tracks and vice-versa. On the other hand, 
  171.      the half-tracks can be used it the normal tracks are left unused. For
  172.      instance a disk could use track 0, 1.5, 2.5, 4, 5, etc. A normal copy
  173.      program will miss all the half-tracks.
  174.  
  175. % Nibble Copy Programs Fight Back %
  176.  
  177. In response to the above protection techniques, computer hobbyists began to
  178. write and circulate special copy programs known as `Nibble Copiers'. These were
  179. passed gratis along the grapevine of hobbyists. The first commercially 
  180. advertised bit copier was `Locksmith' by Omega Microware of Chicago at around
  181. 1984. The first version of Locksmith was slow but reliable, and was able to
  182. cope quite easily with all the copy-protection methods described above. Within
  183. a year other company programs appeared, like Copy-Write, Copy-II-PC and 
  184. E.D.D., but Locksmith remained the most prominent until Omega Microware 
  185. collapsed near 1985-86. 
  186.  
  187. A bit copier makes as few assumptions as possible about the format of the disk.
  188. It does not assume any particular number of sectors pet track or tracks per
  189. disk, or any particular number of sectors per tracks per disk, or any other
  190. possible sector alteration. This is something DOS was never able to do. Bit
  191. copiers read each track, and attempts to reproduce what it finds exactly on
  192. the destination disk, bit for bit. Error checking is performed by reading the
  193. track several times over and comparing the data. Completely unformatted tracks
  194. were identified and ignored.
  195.  
  196. % Spiral Tracking %
  197.  
  198. This is probably the ultimate in format alteration, and the last to be
  199. developed. This method was actually very clever. The way the data was 
  200. structured on the diskette, actually `looked' like a spiralling pattern.
  201. The floppy drive heads would travel a small arc starting from the outer
  202. track, then jump to the next track (or half-track) and immediately travel
  203. another small arc, then jump to the next track, and so on. The resulting
  204. series of arcs resemble a broken spiral, hence the name. So instead of track
  205. 1 being the outmost ring, it would spiral towards the innermost track. This
  206. type of protection is quite difficult for a bit copier to overcome, since it
  207. depends on the accurately synchronized copying of partially formatted tracks.
  208. Unformatted areas of tracks contain magnetic signals of intermediate values,
  209. bits neither 0 nor 1. Therefore it was extremely difficult for the bit copier
  210. to identify all those portions of the track that can be copied correctly. One
  211. major serious problem with spiral tracking is that it depends on precise
  212. timing of events. It the disk drive is rotating a bit too fast or slow, or is
  213. slightly misaligned in other ways, the protected disk is likely to fail. 
  214.  
  215. % Slow Drives %
  216. Another protection technique used in combination with some of the above methods
  217. is to record the protected software using a disk drive turning SLOWER than 
  218. normal. When data is recorded on a track passing slowly under the head, more 
  219. data per inch than normal is recorded. This makes it possible to record more
  220. data on a track than would normally fit. Therefore if the user would try to
  221. copy the software with a regular drive, the destination disk will complete
  222. a full revolution before all the data is copied, and the tail of the track will
  223. overlap and destroy the head of the track on the destination disk.
  224.  
  225. % Copy-protection Method #2 : Signatures %
  226. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  227.  
  228. As we could see the protection wars, escalation proceeded rapidly. The methods
  229. described above were all `format alteration methods. They use a non-standard
  230. disk format that is not recognized by standard copy programs, but copy-able
  231. by the bit copiers. So a new method was introduced, a signature, which was any
  232. minor feature of a disk that serves as an identification mark to verify that 
  233. the disk is an original. To be effective, a signature must be a feature that
  234. is not properly duplicated by a copy program, including bit copiers.
  235.  
  236. % Innermost track %
  237.  
  238. Probably the first signature protection method was the use of an extra track. 
  239. A normal IBM disk uses 0 to 39. The disk drive is in fact capable of stepping
  240. the head to an extra innermost track, track 40. (and sometimes to track 41)
  241. The innermost track is normally unused because of reliability problems. A 
  242. protected program may format this track and use the fact that it is formatted
  243. as a signature to verify that the disk is an original. It may even keep some
  244. portion of itself (eg the disk directory) on the innermost track. An ordinary
  245. copy program will overlook this track, and a bit copier will only copy it if
  246. specifically instructed to.
  247.  
  248. % Check for write-protection %
  249.  
  250. An ancient and crude signature method is to issue original disks with the 
  251. write-protect notch covered. The program would try to write to the disk, if
  252. the write operation succeeds, the program can assume that the user made a 
  253. duplicate disk and refuse to execute. 
  254.  
  255. % Bit Counting %
  256.  
  257. It is _very_ difficult to get two disk drives to turn at precisely the same
  258. speed. Any characteristic of a disk that depends critically on the speed of
  259. the drive on which is was recorded will make a good signature. For example,
  260. when a disk is formatted, there is always some empty spaces remaining on each
  261. track between the end of the last sector and the beginning of the first sector.
  262. The formatting program fills this space with meaningless bits. The size of the
  263. space, and therefore the number of bits, and therefore the total number of bits
  264. on the track, depends on the rotational speed of the disk drive. If the bits 
  265. are counted, and the count is recorded somewhere else in the disk, the software
  266. can compare the number of bits to the count every time the disk is booted. If
  267. a duplicate is made on a different drive, the duplicate disk will have a 
  268. different number of bits on that track, and the count will fail. Even small
  269. variations in the speed of a single drive will cause different disks made 
  270. on that drive to have different numbers of bits per track, so that each disk 
  271. has a different signature. 
  272.  
  273. This is an _extremely_ difficult protection method for bit copiers to overcome. 
  274. Some version of Locksmith included a utility to prompt the user to adjust the 
  275. speed of the drive (by turning a vernier with a screwdriver) until it matched 
  276. the apparent speed of the drive on which the original disk was recorded. 
  277. However, E.D.D. (Essential Data Duplicator) used a variable timing loop to 
  278. vary the rate at which the bits are recorded on the destination disk, to 
  279. compensate for the speed of the destination disk drive. These methods required
  280. a great deal of trial-and-error to make satisfactory duplicate disks. 
  281.  
  282. % Deliberately Damaged Media %
  283.  
  284. This method consisted of deliberately damaged media; a disk which is damaged 
  285. in a predictable way that can be detected by the software. The damage serves
  286. as a signature. An example is the `Prolok' systems by Vault Corporation. Prolok
  287. is a special disk sold to software companies, to publish their programs on. The
  288. disk included software that may be adapted to work with any application program
  289. the software publisher records on the disk. The signature is a small hole, cut
  290. by laser, in the recording surface of the disk. The Prolok software can detect
  291. this hole because it is an area on which no data can be recorded, bad sector. 
  292.  
  293. Prolok is actually quick easy to defeat for a programmer. The technique
  294. was to insert a small TSR program hooked to int 13h, and it would review 
  295. all requests by programs to the DOS. If Prolok asks the DOS to read the area
  296. of the disk where the hole is, the TSR captures the request and forges a 
  297. reassuring response. There was also a pubic domain program specifically 
  298. designed to defeat Prolok, called FUProlok. 
  299.  
  300. In general ALL these disk-based copy-protection had one major flaw, they all 
  301. had some easy pattern that would enable us to defeat them easily. The pattern
  302. was the usage of Int 13h, the knowledgable `cracker' would construct a simple
  303. generic TSR that would hook Int 13h, that would create a break-point (Int 3h) 
  304. whenever the interrupt was called. From there the knowledgable cracker could
  305. trace through the code, and see if the information obtained by the Int 13h 
  306. was used in a peculiar method. Most programs are written in a high level 
  307. language so the use of Int 13h is not common therefore get to the bottom of
  308. the Int 13h
  309.  
  310. % Difficulties of Disk-based Copy-protection %
  311. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  312.  
  313. The major obstacle of disk-based copy-protection was a hard disk. 
  314. Hard disk users were not content to run programs from the floppy disks, they
  315. almost insisted on transferring the software to the hard disk. One solution 
  316. that was adopted was for the program to execute itself from the hard disk, 
  317. but to also require the floppy to be left in its drive. The floppy was usually
  318. referred to as a `key disk', which was periodically checked to validate the 
  319. signature. 
  320.  
  321. The major problem was that it didn't allow the user to have access to his
  322. floppy drive while using the hard disk. Another bad side effect was that it
  323. prevented users connected to a network, in executing more than one copy 
  324. at the same time, as you only had one copy of the `key disk' to go around. 
  325. And all of the `format' methods examples cannot be used on a hard disk. In
  326. general you cannot tamper with the structure of the hard disk, because it 
  327. may contain several hundreds different applications. Also the interface 
  328. system does not give the host computer direct control of details like
  329. the number and arrangement of sectors per track or count of bits on a track.
  330.  
  331. ================================================================================
  332.