home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / utils / easyun.zip / GCLISP.TXT < prev    next >
Text File  |  1985-10-19  |  8KB  |  166 lines

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