home *** CD-ROM | disk | FTP | other *** search
/ Between Heaven & Hell 2 / BetweenHeavenHell.cdr / 500 / 490 / softgard.arc / SOFTG200.UNP < prev   
Text File  |  1980-01-01  |  8KB  |  188 lines

  1. SOFTG200.UNP        Breaking Softguard version 2.00
  2.                                                     by The Lone Victor
  3.  
  4.      United States copyright law SPECIFICALLY grants you the right to 
  5. make copies of programs you buy on magnetic media.  Programs are copy
  6. protected IN VIOLATION OF YOUR RIGHTS UNDER U.S. LAW.
  7.  
  8.      Programs that are protected by the Softguard system are distinguished
  9. by the files CML0200.HCL and VDF0200.VDW which are hidden in the root
  10. directory when you install the program on your fixed disk.  The 0200
  11. part of the file names is the Softguard version (2.00) while CML stands
  12. for Common Loader and VDF is the Volume Descriptor File.  The extensions
  13. HCL and VDW stand for Hard Common Loader and Verify Descriptor Working
  14. copy.  In addition, there will be a hidden root file with a .EXE or .LOD
  15. or some other extension.  This is the REAL program, which has been encrypted 
  16. and hidden.  
  17.  
  18.      The program PRODUCT.COM, in the product directory is the Softguard 
  19. miniloader.  All it does is call the Common Loader.  For example, when 
  20. you run dbase, the program DBASE.COM loads CML0200.HCL high in memory and 
  21. runs it.  CML decrypts itself and reads VDF0200.VDW.  The VDF file contains 
  22. some code and data from the fixed disk FAT at the time of installation.  By 
  23. comparing the information in the VDF file with the current FAT, CML can tell 
  24. if the CML, VDF, and DBASE.EXE files are in the same place on the disk where 
  25. they were installed.  If they have moved, say from a backup & restore, then 
  26. dBase will not run.
  27.  
  28.      This text file is designed to let you unprotect ANY of the programs
  29. using the Softguard 2.00 system.  We will use dBase III as an example,
  30. but values for other programs will be included in a table.  This text will
  31. not unprotect any programs using Softguard 2.03 such as CLIPPER.  For 
  32. those programs, see the file SOFTG203.UNP.  Versions 1.00 of dBase III and 
  33. Framework used ProLock.  To unprotect Prolock disks read the file 
  34. PROLOCK.UNP, also by yours truly.
  35.  
  36.      This table is an experiment designed to keep down the number of files
  37. uploaded to BBS's.  When I started it, this text file was named SOFTG200.UN1.
  38. Whenever you add a product to the table (including your "name" if desired)  
  39. increment the file name by one and upload it to your local BBS.  Don't worry 
  40. about the fact that others will be doing the same.  Higher versions of 
  41. SOFTG200.UNx will not INSURE that they contain all the tabulated products, 
  42. but will be MORE LIKELY to contain them all.  Eventually we'll get them all 
  43. collected.  (Could this be a new type of electronic chain letter?)
  44.  
  45.      If you find a new program to add to the table, just enter the name of 
  46. the encrypted, hidden file in the root directory, and it's size converted
  47. to HEX.  Try it out before you upload it to your BBS.
  48.  
  49.      If you have any comments on this unprotect routine or the PROLOCK.UNP
  50. routine, please leave them on the Atlanta PCUG BBS (404) 634-5731.
  51.  
  52.                                           The Lone Victor - 6/26/85
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.             TABLE OF VALUES FOR VARIOUS PROTECTED PROGRAMS
  68.  
  69.                      FILE    FINAL
  70. PRODUCT  VERSION     NAME     EXT  SIZE:  BX=  CX=        CONTRIBUTOR
  71. ------------------------------------------------------------------------
  72.  
  73. dBase III   1.10     DBASE    EXE   BX = 1  CX = AC00  The Lone Victor 4/15/85
  74. Framework   1.10     FW       EXE   BX = 2  CX = F400  Q-1367
  75.                                   (I question this next file size - L.V.)
  76. WordStar    1.00     WS2000   EXE   BX = 1  CX = AC00  Gerald Lee
  77. Double DOS    ?      DOUBLEDO EXE   BX = ?  CX = ?     Big Al & Coffee Man
  78. Spot Light    ?      SL       EXE   BX = 0  CX = 6700
  79.  
  80.  
  81.  
  82.  
  83.      The following instructions show you how to bypass the SoftGuard copy 
  84. protection scheme using dBase III version 1.10 as an example.  To use it 
  85. with other products, simply substitute the values in the table above for 
  86. the values given below.  The only things that change are the file name, 
  87. and the size that goes in the BX:CX register pair.
  88.  
  89.  
  90.  
  91.                         -- INSTRUCTIONS --
  92.  
  93.      First, using your valid, original dBase III diskette, install it on
  94. a fixed disk.  You cannot use this text to unprotect the floppy directly!
  95. Softguard hides three files in your fixed disk root directory: CML0200.HCL, 
  96. VDF0200.VDW, and DBASE.EXE.  It also copies DBASE.COM into your chosen 
  97. dBase directory.  DBASE.EXE is the real dBase III program, encrypted.  The 
  98. extension of this file does not matter.  It is really an encrypted .EXE file.
  99.  
  100.      Second, un-hide the three files in the root directory.  You can do
  101. this with the programs ALTER.COM or FM.COM found on any BBS.
  102.  
  103.      Make copies of the three files, and of DBASE.COM, into some other
  104. directory.
  105.  
  106.      Hide the three root files again using ALTER or FM.
  107.  
  108.      Following the dBase instructions, UNINSTALL dBase III.  You can now
  109. put away your original dBase diskette.  We are done with it.
  110.  
  111.      Next we will make some patches to CML0200.HCL to allow us to trace
  112. through the code in DEBUG.  These patches will keep it from killing our
  113. interrupt vectors.
  114.  
  115. debug cml0200.hcl
  116. e 3F9 <CR>  2A.4A <CR>          ; change the 2A to 4A
  117. e 49D <CR>  F6.16 <CR>          ;  if any of these numbers don't show up
  118. e 506 <CR>  E9.09 <CR>          ;  it's not working.
  119. e A79 <CR>  00.20 <CR>          ;
  120. e AE9 <CR>  00.20 <CR>          ;
  121. e 73C  97 FA FA F4 F1 7E <CR>   ; this is an encrypted call to 0:300
  122. w                               ; write out the new CML file
  123. q                               ; quit debug
  124.  
  125.  
  126.      Now copy your four saved files back into the root directory and
  127. hide the CML0200.HCL, VDF0200.VDW, and DBASE.EXE files using ALTER or FM.
  128.  
  129.      We can now run DBASE.COM using DEBUG, trace just up to the point
  130. where it has decrypted DBASE.EXE, then write that file out.
  131.  
  132.           ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  133.        ****  E.G. USE FW.COM INSTEAD OF DBASE.COM FOR FRAMEWORK  ****
  134.  
  135. debug DBASE.com                 ; name of file that runs the product
  136. r <CR>                          ; dump debug's registers
  137.  
  138.           ****  WRITE DOWN THE VALUE OF DS FOR USE BELOW.  ****
  139.      ****  THIS VALUE IS DEPENDENT ON YOUR PARTICULAR MACHINE.  ****
  140.  
  141. a 0:300 <CR>                    ; we must assemble some code here
  142.         pop     ax
  143.         cs:
  144.         mov     [320],ax        ; save return address
  145.         pop     ax
  146.         cs:
  147.         mov     [322],ax
  148.         push    es              ; set up stack the way we need it
  149.         mov     ax,20
  150.         mov     es,ax
  151.         mov     ax,0
  152.         cs:
  153.         jmp     far ptr [320]   ; jump to our return address
  154.  <CR>
  155. g 406                           ; now we can trace CML
  156. t
  157. g 177                           ; this stuff just traces past some
  158. g 1E9                           ;   encryption routines.
  159. t
  160. g 54E                           ; wait while reading VDF & FAT
  161. g=559 569
  162. g=571 857                       ; DBASE.EXE has been decrypted
  163.  
  164.               ****  USE THE FILE SIZE LISTED IN THE TABLE ABOVE  ****
  165.               ****  THE VALUES HERE ARE FOR DBASE III 1.10 ONLY  ****
  166.  
  167. rBX <CR>  
  168. :1                              ; set BX to 1 for dBase
  169. rCX <CR>
  170. :AC00                           ; set CX to AC00 for dBase
  171.  
  172.               ****  USE THE FILE NAME LISTED IN THE TABLE ABOVE  ****
  173.  
  174. nDBASE.bin                      ; name of file to write to
  175. w XXXX:100                      ; where XXXX is the value of DS that
  176.                                 ;   you wrote down at the beginning.
  177. q                               ; quit debug
  178.  
  179.      Last, unhide and delete the three root files CML0200.HCL, VDF0200.VDW, 
  180. and DBASE.EXE.  Delete DBASE.COM and rename DBASE.BIN to DBASE.EXE.  This is 
  181. the real dBase III program without any Softguard code or encryption.  It 
  182. requires only the DBASE.OVL file to run.  We wrote this out as a .BIN file 
  183. first because DEBUG cannot write .EXE files.  Every protected program I have 
  184. seen has the .EXE extension, but it is possible to use Softguard to encrypt 
  185. .COM files too.  See the table above for the proper extension to put on the 
  186. decrypted file.
  187.  
  188.