home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / zines / n_z / pirate3.008 < prev    next >
Encoding:
Text File  |  2003-06-11  |  37.0 KB  |  987 lines

  1.  
  2. ***  Pirate Magazine Issue III-3 / File 8 of 9  ***
  3. ***  Cracking Tips  (Part 6)                    ***
  4. ***************************************************
  5.  
  6.  
  7. In this file: Lotus 123
  8.               Visicalc
  9.               Microsoft word 1.1
  10.               ZORK
  11.               Trivia Fever
  12.               Wordstar 2000 1.00
  13.               dBase 3
  14.               PFS programs
  15.               Double Dos
  16.  
  17.  
  18.                   UNPROTECTING LOTUS 1-2-3
  19.  
  20. 1-2-3 Release 1-A
  21. -----------------
  22. 1. Rename 123.exe 123.xyz
  23. 2. DEBUG 123.xyz
  24. 3. Type U ABA9
  25. 4. You should see INT 13 at this address
  26. 5. Type E ABA9 90 90
  27. 6. Type W
  28. 7. Type Q
  29. 8. Rename 123.xyz 123.exe
  30.  
  31. 1-2-3 Release 1
  32. ---------------
  33. 1. Rename 123.exe 123.xyz
  34. 2. DEBUG 123.xyz
  35. 3. Type S DS:100 FFFF E8 BE 71
  36.    The system will respond with xxxx:3666 where xxxx can vary
  37. 4. Type E xxxx:3666 90 90 90  (xxxx is the number from above)
  38. 5. Type W
  39. 6. Type Q
  40. 7. Rename 123.xyz 123.exe
  41.  
  42.        Compliments of THE BIG APPLE BBS (212) 975-0046
  43.  
  44.                 <> <> <> <> <> <> <> <> <> <> <>
  45.      [[This patch was extracted from the PHOENIX IBM-PC Software
  46. Library newsletter. They received it from the HAL-PC users group of
  47. Houston, TX.  Corrected by Jack Wright.  Many thanks to them.]]
  48.  
  49. ****   CONVERT VISICALC TO A .COM FILE   ****
  50.  
  51. USE THE FOLLOWING PROCEDURE TO TRANSFER THE 80-COLUMN VISICALC PROGRAM
  52. FROM THE VISICALC DISK AND WRITE A STANDARD .COM FILE WHICH MAY BE
  53.  
  54. FORMAT A DISK AS FOLLOWS: (FORMAT B:/S(ENTER)).
  55. START THE DEBUG SYSTEM.
  56. INSERT THE VISICALC DISK IN DRIVE A:
  57. THEN TYPE:
  58.  
  59. -L 100 0 138 2         (LOAD THE VC80 LOAD/DECRYPTER)
  60. -M 0 3FF 7000          (DUPLICATE IT IN HIGHER MEMORY)
  61. -R CS                  (INSPECT COMMAND SEGMENT REGISTER)
  62.  
  63. DEBUG WILL RESPOND WITH THE CONTENTS OF THE CS REGISTER (eg. 04B5) AND
  64. PROMPT WITH A COLON (:). TYPE THE OLD CONTENTS + 700 (HEX). (eg. 04B5
  65. BECOMES 0BB5). DO THE SAME WITH THE 'DS' REGISTER.
  66. DEBUG response to R CS might be:
  67.  
  68. CS 04B5    <-Save the value you get, we'll need it later.
  69. :0BB5      <-Type in your CS value + 700hex here
  70. -R DS      <-Type
  71. DS 04B5
  72. :0BB5      <-Type in your DS value + 700hex here
  73.  
  74. NEXT:
  75. Take the low order byte of the CS you saved above and substitute it
  76. for LL in the next line.  Substitute the high order byte for HH:
  77.  
  78. -E 107 LL HH           (ENTER BYTE-FLIPPED CS) Ex: -E 107 B5 04
  79. -E 24D BB A8 00 90     (HARD-WIRE THE DECRYPTION KEY)
  80.  
  81. NOW, WE MUST RUN THE LOADER/DECRYPTER, TYPE:
  82.  
  83. -G =1B8 26B            (EXECUTE FROM 1B8 TO 26B)
  84.  
  85. THE ENTIRE PROGRAM WILL NOW BE LOADED AND DECRYPTED AND A REGISTER DUMP
  86. SHOULD APPEAR ON THE SCREEN. NOW RESTORE CS AND DS TO THEIR PREVIOUS
  87. VALUES AND SET THE FILE LENGTH IN CX. Set BX=0:
  88.  
  89. -R CS
  90. CS 0BB5     <-Yours might be different
  91. :04B5       <-Type in the value of CS you saved above
  92. -R DS
  93. DS 0BB5
  94. :04B5       <-Type in the value of DS you saved above
  95. -R BX
  96. BX F3FD
  97. :0
  98. -R CX
  99. CX 0000
  100. :6B64       (LENGTH = 6B64 FOR VERSION 1.1, 6802 FOR VERSION 1.0)
  101.  
  102. NOW WE MUST NAME THE FILE, WRITE IT AND EXIT.
  103. REMOVE THE VISICALC DISK FROM A:
  104. INSERT THE NEW, FORMATTED, EMPTY DISK IN A:
  105. TYPE:
  106. -N VC.COM               (OR WHATEVER YOU WISH TO NAME IT)
  107. -W                      (WRITE THE .COM FILE)
  108. -Q                      (EXIT FROM DEBUG)
  109. ***YOU ARE DONE*****
  110. Back in DOS, type VC to try it.
  111. 
  112. The protection scheme for MS WORD is quite good.  The last track
  113. is formatted with 256 byte sectors.  One sector, however, has
  114. an ID that says it is a 1K sector.  If you try to read it as a 256
  115. byte sector, you'll get a sector not found.  You can read it as a
  116. 1K sector with a guaranteed CRC error, and you will get the data
  117. and other sector overhead from 3+ sectors.  They read it as 1K, and
  118. use the bytes after the first 256 for decryption.  These bytes
  119. constitute the post-amble of the sector, the inter-sector gap, and
  120. the preamble to the next 256 byte sector.  If it's not formatted
  121. with the correct inter-sector gap, the decryption key is
  122. different and the incorrectly decoded program bombs.
  123.  
  124. The best way around this is to modify the MWCOPY program so it
  125. will let you make more than one copy.  The below mods will let
  126. you make as many backups as you want (and you can leave the
  127. write protect tab on your master disk).  Of course, this method
  128. should only be used by registered owners of Word.  If you, or any
  129. of your IMF force is killed, the secretary will disavow any
  130. knowledge of these patches.
  131.  
  132. We will copy MWCOPY to another disk, using another name (MWCP) so
  133. you'll know it's the special version, and then modify MWCP.
  134.  
  135. (with master disk in A:, B: has any disk with debug on it)
  136. A>copy mwcopy.com b:mwcp.com
  137. B>debug mwcp.com
  138. -e103
  139. xxxx:0103  0x.00
  140. -e148
  141. xxxx:0148  A5.a7
  142. -e194
  143. xxxx:0194  02.04
  144. -e32a
  145. xxxx:032A  1C.1e
  146. -e32e
  147. xxxx:032E  1C.1e
  148. -e3372
  149. xxxx:3372  01.03
  150. -ecfe
  151. xxxx:0CFE  CD.90<space>26.90<space>
  152. xxxx:0D00  5B.90
  153. -e4ab
  154. xxxx:04AB  1B.84
  155. -e69a
  156. xxxx:069A  C1.b9<space>38.ff<space>28.b9
  157. -e7b3
  158. xxxx:07B3  A2.5f<space>08.e9
  159. -e66f
  160. xxxx:066F  E5.d8<space>
  161. xxxx:0670  94.29<space>90.ff<space>29.b9
  162. Writing 332D bytes
  163. -q
  164. B>mwcp      (try making a copy..remember,
  165.              leave the write-protect on the master)
  166.    (Just follow the prompts in the program, except when they ask
  167.     you to remove the write protect tab)
  168.  
  169. I think this will also work for the hard disk copy portion.  Another
  170. way to unprotect Word gets rid of the need for any weird disk formats.
  171. But it is MUCH more complicated to do.  Enjoy!
  172.  
  173.                 <> <> <> <> <> <> <> <> <> <> <>
  174. Unprotection for Microsoft "WORD" Version 1.1 using the
  175. Ultra-utilities (U-Format and U-Zap). June 22, 1984
  176.  
  177.     The following information is presented for those legitimate
  178. owners who feel somewhat insecure when the availability of an
  179. important program is dependent on the survival of a single floppy
  180. disk.
  181.  
  182.     Microsoft's WORD uses a very good protection method. This
  183. consists of a track (Side 1, Track 39) which is formatted with
  184. twelve sectors. Sectors 1,2,3,4,6,7,8,9,10 & 11 are all 256 byte
  185. sectors. Sector 5 is formatted as a 1024 byte sector with a
  186. inherent CRC error. The sectors on this track have an ASCII text
  187. on the subjects of not stealing software and the names of the
  188. people who worked on the development of the WORD package.
  189.  
  190.     Sectors 1,2,3 & 4, while presenting an interesting message, do
  191. not directly affect the copy protection scheme. They would
  192. appear to be a "red herring", to divert attention from the actual
  193. protection area.
  194.  
  195.     Earlier versions of WORD were supplied with a program called
  196. MWCOPY.COM which permitted a single floppy disk copy and a single
  197. hard disk copy. If you have these versions use WORD.UNP or
  198. WORDNEW.UNP which can be found on many BBS's.
  199.  
  200.     Version 1.1 is furnished with a single back-up floppy and the
  201. utility programs furnished are MWCOPY1.COM, MWCOPY.BAT, and
  202. MWCOPY2.BAT. These programs only permit a one-time copy to a hard
  203. disk. No provision is included for a floppy copy.
  204.  
  205.     To make a floppy copy you will need the Ultra-Utilities, a
  206. userware set of programs available on many BBS's. Of this set you
  207. specifically need U-FORMAT.EXE and U-ZAP.EXE.
  208. 1)  Place a write protect tab on your copy of WORD.
  209. 2)  Make a copy of WORD with the standard DOS DISKCOPY command.
  210.     (NOTE: There are hidden files, so the use of COPY will
  211.     not work.
  212.     DISKCOPY will report "Unrecoverable read errors on source
  213.     Track 39 Side 1". Just ignore this.
  214. 3)  Start the U-FORMAT.EXE program. This can be done by removing
  215.     the WORD disk and inserting your Ultra-Utilities disk. Once
  216.     U-Format is started you can remove the Ultra-utilities disk
  217.     and return the WORD disk to the drive.
  218. 4)  Select #5 (Display Radix) from the U-Format menu and change to
  219.     decimal display.
  220. 5)  Select #4 (Display/Modify Disk Parameter Table) and set the
  221.     following:
  222.     #4 Bytes per sector = 001
  223.     #5 Highest sector number per track = 012
  224.     #8 Formatting gap length = 010
  225.     All other values remain at the default settings.
  226.     Quit to the main menu.
  227. 6)  Select menu item #3 (Format a Non-Standard Track)
  228.     The program will ask if you intend to format a track with 12
  229.     sectors. Answer = YES
  230.  
  231.     The program will then ask for the following information:
  232.  
  233.     SIDE  =  1
  234.     DRIVE  =  (enter letter of the drive with the COPY disk)
  235.     TRACK  =  39
  236.  
  237.     The program will then prompt for the following information:
  238.  
  239.     Physical Sector #   Logical Sector #   Sector Size
  240.           1                   1               1
  241.           2                   2               1
  242.           3                   3               1
  243.           4                   4               1
  244.           5                   5               3
  245.           6                   6               1
  246.           7                   7               1
  247.           8                   8               1
  248.           9                   9               1
  249.          10                  10               1
  250.          11                  11               1
  251.          12                  12               1
  252.  
  253.     After pressing "enter" in response to the prompt, you may exit
  254.     U-Format.
  255.  
  256. 7)  Start the U-ZAP.EXE program. This can be done by removing
  257.     the WORD disk and inserting your Ultra-Utilities disk. Once
  258.     U-Zap is started you can remove the Ultra-utilities disk
  259.     and return the WORD disk to the drive.
  260.  
  261. 8)  Select #8 (Display Radix) from the U-Format menu and change to
  262.     decimal display.
  263.  
  264. 9)  Select #11 (Display/Modify Disk Parameter Table) and set the
  265.     following:
  266.  
  267.     #4 Bytes per sector = 001
  268.     #5 Highest sector number per track = 012
  269.  
  270.     All other values remain at the default settings.
  271.  
  272.     Quit to the main menu.
  273.  
  274. 10) Select #3 (Copy Disk Sectors) and use the following
  275.     information:
  276.  
  277.     SOURCE DISK                     DESTINATION DISK
  278.  
  279.     SIDE  =  1                      SIDE  =  1
  280.     DRIVE  =  (enter drive letter   DRIVE  =  (enter drive letter
  281.                for WORD disk)                  for COPY disk)
  282.     TRACK  =  39                    TRACK  =  39
  283.     SECTOR  =  6                    SECTOR  =  6
  284.  
  285.         NUMBER OF SECTORS TO COPY  =  7
  286.  
  287.     The program will report "Sector Not Found"... "Re-Try (Y/N)"
  288.     Answer  =  NO
  289.  
  290.     The program will then ask how many sides for the disk.
  291.     Answer  =  2
  292.  
  293.     The program will then show the copy process.
  294.  
  295.     (NOTE: DO NOT copy the information from sectors 1,2,3,4,
  296.     or 5.)
  297.  
  298.     You may then quit from U-zap to DOS.
  299.  
  300.     YOUR' DONE.
  301.  
  302.     The copy disk should workHow to backup Infocom's ZORK III game:
  303. *Insert DOS disk in drive A
  304.  
  305. A>DISKCOPY A: B:          <-- Ignore the errors on tracks 1-3!
  306. *Place your ZORK I or ZORK II disk in drive A and a blank disk in drive B.
  307.  BE SURE THAT YOUR ORIGINAL IS WRITE-PROTECTED!!!
  308.  
  309. A>
  310. *Now take out your ZORK disk and insert your DOS disk in A.
  311.  
  312. A>DEBUG
  313. -R CS
  314. xxxx
  315. :0000                <-- you enter this
  316. -R DS
  317. xxxx
  318. :0040
  319. -R IP
  320. xxxx
  321. :7C00
  322. -R ES
  323. xxxx
  324. :0000
  325. -L 0:7C00 0 0 8
  326. -G =0:7C00 0:7C32
  327. -G 0:7C44                <-- Don't take a shortcut here!
  328. -R ES
  329. xxxx
  330. :04C5
  331. -G 0:7C46
  332. -E 7C0:007C 02 08
  333. -W 800:0000 1 8 8
  334. -E 07C0:007C 03 04
  335. -G 0:7C44
  336. -R BX
  337. xxxx
  338. :0000
  339. -G 0:7C46
  340. -E 07C0:007C 02 08
  341. -W 04C5:0000 1 10 8
  342. -E 07C0:007C 03 04
  343. -G 0:7C44
  344. -R BX
  345. xxxx
  346. :0000
  347. -E 07C0:007C 02 08
  348. -W 04C5:0000 1 18 8
  349. -E 0:7C41 B8 08 02
  350. -W 0:7C00 1 0 8
  351. -Q
  352.                 <> <> <> <> <> <> <> <> <> <> <>
  353.  UNPROTECT FOR INFOCOMO'S  -ZORK III-
  354. *This patch was done under DOS 1.1 - I haven't tried it under DOS 2.0 yet -
  355.  which may cause unpredictable results...
  356. *Take out your new disk in drive B and write-protect it.
  357.  It is now DISKCOPY-able.
  358. *Reboot your system - press ALT-CTRL-DEL.
  359.  
  360. How to backup Infocom's ZORK III game:
  361.  
  362. *Insert DOS disk in drive A
  363.  
  364. A>DISKCOPY A: B:          <-- Ignore the errors on tracks 1-3!
  365. *Place your ZORK III disk in drive A and a blank disk in drive B.
  366.  
  367. A>
  368. *Now take out your ZORK III disk and insert your DOS disk in A.
  369.  
  370. A>DEBUG
  371. -R CS
  372. xxxx
  373. :0000                <-- you enter this
  374. -R DS
  375. xxxx
  376. :0040
  377. -R IP
  378. xxxx
  379. :7C00
  380. -R ES
  381. xxxx
  382. :0000
  383. -L 0:7C00 0 0 1
  384. -G =0:7C00 0:7C2A
  385. -R AX
  386. xxxx
  387. :0800
  388. -G 0:7C63
  389. -E 800:14E5 B8 08 02
  390. -E 800:211A 02 08
  391. -W 800:0000 1 8 18
  392. -L 0:7C00 0 0 8
  393. -E 0:7C7C 02 08
  394. -E 0:7C41 B8 08 02
  395. -W 0:7C00 1 0 8
  396. -Q
  397.  
  398. *Take out your new disk in drive B and write-protect it.
  399.  It is now DISKCOPY-able.
  400. *Reboot your system - press ALT-CTRL-DEL.
  401.                 <> <> <> <> <> <> <> <> <> <> <>
  402.  
  403. This is the procedure to unprotect the game software package
  404. called TRIVIA FEVER (This procedure also works on the demo disk of
  405. TRIVIA FEVER available with the blank XIDEX disks!)
  406.  
  407. If you have a hard disk or want to create a backup copy that is not
  408. tied to the original TRIVIA system disk, this will remove the copy
  409. protection completly.
  410.  
  411. This procedure is to be used by legitimate owners of
  412.         TRIVIA FEVER ONLY ...
  413. as you are entitled to make a back up for archive purposes only.
  414. You are bound by your licence agreement.
  415.  
  416. Format a blank system disk using DOS 2 or 2.1
  417.  
  418. Label it the same as the original TRIVIA system disk.
  419.  
  420. Copy the files from the original TRIVIA system to the formatted
  421. blank disk using  *.*   .
  422.  
  423. Place DOS system disk containing DEBUG in drive A:
  424.  
  425. Place the new copy of TRIVIA in drive B:
  426.  
  427. Rename the file called TF.EXE to TF
  428.  
  429. A>DEBUG B:TF
  430.  
  431. -E 257E      (enter)
  432.  
  433. -75.90 03.90 (enter)
  434.  
  435. -W
  436.  
  437. -Q
  438.  
  439. Rename B:TF B:TF.EXE
  440.  
  441. Now all the copy protection has been removed, and you may copy the
  442. files as required.
  443.  
  444. All checks for specially formatted tracks has been removed.
  445.  
  446. Disk needs no longer to be in the A drive on start up.
  447.                 <> <> <> <> <> <> <> <> <> <> <>
  448.  
  449.                Wordstar 2000 version 1.00  -  Unprotect
  450.                             by Gerald Lee
  451.  
  452.                             derived from
  453.  
  454.                  dBase III version 1.10  -  Unprotect
  455.                           by The Lone Victor
  456.  
  457.      The following instructions show you how to bypass the SoftGuard
  458. copy protection scheme used on WORDSTAR 2000 version 1.00.  This is the
  459. same scheme used for FrameWork 1.10 and for dBase III version 1.10.
  460. Wordstar 2000 version 1.10 does not use a copy protection scheme, while
  461. versions 1.00 of dBase III and FrameWork used ProLock.  To unprotect
  462. Prolock disks read the file PROLOCK.UNP.
  463.  
  464.      First, using your valid, original Wordstar 2000 diskettes, install
  465. it on fixed disk.  Softguard hides two files in your root directory:
  466. CML0200.HCL and VDF0200.VDW.  WS2000.EXE is the real Wordstar 2000
  467. program, encrypted.  When you run Wordstar, the program WS2000.COM loads
  468. CML0200.HCL high in memory and runs it.  CML decrypts itself and reads
  469. VDF0200.VDW.  The VDF file contains some code and data from the fixed disk
  470. FAT at the time of installation.  By comparing the information in the VDF
  471. file with the current FAT, CML can tell if the CML, VDF, and WORDSTAR.EXE
  472. files are in the same place on the disk where they were installed.  If
  473. they have moved, say from a backup & restore, then WORDSTAR 2000 will
  474. not run.
  475.  
  476.      Second, un-hide the two files in the root directory.  You can do
  477. this with the programs ALTER.COM or FM.COM, or UNHIDE.COM and HIDE.COM
  478. found on any BBS.  PC-SWEEP2 is the easiest it will copy the files to
  479. another directory unhidden.
  480.  
  481.      Make copies of the two files, and of WS2000.COM and WS2000.EXE, into
  482. some other directory.
  483.  
  484.      Hide the two root files again if using ALTER or FM.  Leave alone if
  485. using PC-SWEEP2.
  486.  
  487.      Following the WORDSTAR instructions, UNINSTAL WORDSTAR 2000.  You
  488. can now put away your original WORDSTAR diskettes.  We are done with them.
  489.  
  490.      Next we will make some patches to CML0200.HCL to allow us to trace
  491. through the code in DEBUG.  These patches will keep it from killing our
  492. interrupt vectors.
  493.  
  494. DEBUG CML0200.HCL
  495. E 3F9 <CR>  2A.4A <CR>          ; change the 2A to 4A
  496. E 49D <CR>  F6.16 <CR>          ;  if any of these numbers don't show up
  497. E 506 <CR>  E9.09 <CR>          ;  it's not working.
  498. E A79 <CR>  00.20 <CR>          ;
  499. E AE9 <CR>  00.20 <CR>          ;
  500. E 73C  97 FA FA F4 F1 7E <CR>   ; this is an encrypted call to 0:300
  501. W <CR>                          ; write out the new CML file
  502. Q <CR>                          ; quit debug
  503.  
  504.      Now copy your four saved files back into the root directory and
  505. hide the CML0200.HCL and VDF0200.VDW files using ALTER, FM or PC-SWEEP2.
  506.  
  507.      We can now run WS2000.COM using DEBUG, trace just up to the point
  508. where it has decrypted WORDSTAR.EXE, then write that file out.
  509.  
  510. DEBUG WS2000.COM
  511. R <CR>                          ; write down the value of DS for use below.
  512. A 0:300 <CR>                    ; we must assemble some code here
  513.         POP     AX <CR>
  514.         CS: <CR>
  515.         MOV     [320],AX <CR>   ; save return address
  516.         POP     AX <CR>
  517.         CS: <CR>
  518.         MOV     [322],AX <CR>
  519.         PUSH    ES <CR>         ; set up stack the way we need it
  520.         MOV     AX,20 <CR>
  521.         MOV     ES,AX <CR>
  522.         MOV     AX,0 <CR>
  523.         CS: <CR>
  524.         JMP     FAR PTR [320] <CR> ;jump to our return address
  525.  <CR>
  526. G 406 <CR>                      ; now we can trace CML
  527. T <CR>
  528. G 177 <CR>                      ; this stuff just traces past some
  529. G 1E9 <CR>                      ;   encryption routines.
  530. T <CR>
  531. G 54E <CR>                      ; wait while reading VDF & FAT
  532. G=559 569 <CR>
  533. G=571 857 <CR>                  ; WS2000.EXE has been decrypted
  534. rBX <CR>                        ; length WS2000.EXE = 1AC00 bytes
  535. :1 <CR>                         ; set BX to 1
  536. rCX <CR>
  537. :AC00 <CR>                      ; set CX to AC00.
  538. nWS12 <CR>                      ; name of file to write to
  539. W XXXX:100 <CR>                 ; where XXXX is the value of DS that
  540.                                 ;   you wrote down at the begining.
  541. Q <CR>                          ; quit debug
  542.  
  543.      Last, unhide and delete the two root files CML0200.HCL, VDF0200.VDW,
  544. and WS2000.COM and WS2000 directory.  Rename WS12 to WS2000.COM and
  545. replace in the WS2000 directory.  This is the routine that starts the
  546. real WS2000.EXE program without any SoftGuard code or encryption.   It
  547. requires the .OVL and .MSG files to run.  I have not tried it on a two
  548. disk systems but I think it should work.
  549.  
  550.      If you have any comments on this unprotect routine, please leave
  551. them
  552.                                           GERALD LEE - 5/12/85
  553.                 <> <> <> <> <> <> <> <> <> <> <>
  554.  
  555.                  dBase III version 1.10  -  Unprotect
  556.                                                     by The Lone Victor
  557.  
  558.      The following instructions show you how to bypass the SoftGuard
  559. copy protection scheme used on dBase III version 1.10.  This is the same
  560. scheme used for FrameWork 1.10 and for Wordstar 2000 1.00.  Wordstar
  561. 2000 version 1.10 does not use a copy protection scheme, while versions
  562. 1.00 of dBase III and FrameWork used ProLock.  To unprotect Prolock disks
  563. read the file PROLOCK.UNP.
  564.  
  565. This scheme also reportedly works on Quickcode 1.10 QuickReport 1.00.
  566.  
  567.      First, using your valid, original dBase III diskette, install it on
  568. a fixed disk.  Softguard hides three files in your root directory:
  569. CML0200.HCL, VDF0200.VDW, and DBASE.EXE.  It also copies DBASE.COM into
  570. your chosen dBase directory.  DBASE.EXE is the real dBase III program,
  571. encrypted.  When you run dbase, the program DBASE.COM loads CML0200.HCL
  572. high in memory and runs it.  CML decrypts itself and reads VDF0200.VDW.
  573. The VDF file contains some code and data from the fixed disk FAT at the
  574. time of installation.  By comparing the information in the VDF file with
  575. the current FAT, CML can tell if the CML, VDF, and DBASE.EXE files are
  576. in the same place on the disk where they were installed.  If they have
  577. moved, say from a backup & restore, then dBase will not run.
  578.  
  579.      Second, un-hide the three files in the root directory.  You can do
  580. this with the programs ALTER.COM or FM.COM found on any BBS.
  581.  
  582.      Make copies of the three files, and of DBASE.COM, into some other
  583. directory.
  584.  
  585.      Hide the three root files again using ALTER or FM.
  586.  
  587.      Following the dBase instructions, UNINSTALL dBase III.  You can now
  588. put away your original dBase diskette.  We are done with it.
  589.  
  590.      Next we will make some patches to CML0200.HCL to allow us to trace
  591. through the code in DEBUG.  These patches will keep it from killing our
  592. interrupt vectors.
  593.  
  594. debug cml0200.hcl
  595. e 3F9 <CR>  2A.4A <CR>          ; change the 2A to 4A
  596. e 49D <CR>  F6.16 <CR>          ;  if any of these numbers don't show up
  597. e 506 <CR>  E9.09 <CR>          ;  it's not working.
  598. e A79 <CR>  00.20 <CR>          ;
  599. e AE9 <CR>  00.20 <CR>          ;
  600. e 73C  97 FA FA F4 F1 7E <CR>   ; this is an encrypted call to 0:300
  601. w                               ; write out the new CML file
  602. q                               ; quit debug
  603.  
  604.      Now copy your four saved files back into the root directory and
  605. hide the CML0200.HCL, VDF0200.VDW, and DBASE.EXE files using ALTER or FM.
  606.  
  607.      We can now run DBASE.COM using DEBUG, trace just up to the point
  608. where it has decrypted DBASE.EXE, then write that file out.
  609.  
  610. debug dbase.com
  611. r <CR>                          ; write down the value of DS for use below.
  612. a 0:300 <CR>                    ; we must assemble some code here
  613.         pop     ax
  614.         cs:
  615.         mov     [320],ax        ; save return address
  616.         pop     ax
  617.         cs:
  618.         mov     [322],ax
  619.         push    es              ; set up stack the way we need it
  620.         mov     ax,20
  621.         mov     es,ax
  622.         mov     ax,0
  623.         cs:
  624.         jmp     far ptr [320]   ; jump to our return address
  625.  <CR>
  626. g 406                           ; now we can trace CML
  627. t
  628. g 177                           ; this stuff just traces past some
  629. g 1E9                           ;   encryption routines.
  630. t
  631. g 54E                           ; wait while reading VDF & FAT
  632. g=559 569
  633. g=571 857                       ; DBASE.EXE has been decrypted
  634. rBX <CR>                        ; length DBASE.EXE = 1AC00 bytes
  635. :1                              ; set BX to 1
  636. rCX <CR>
  637. :AC00                           ; set CX to AC00.
  638. nDBASE                          ; name of file to write to
  639. w XXXX:100                      ; where XXXX is the value of DS that
  640.                                 ;   you wrote down at the begining.
  641. q                               ; quit debug
  642.  
  643.      Last, unhide and delete the three root files CML0200.HCL, VDF0200.VDW,
  644. and DBASE.EXE.  Delete DBASE.COM and rename DBASE to DBASE.EXE.  This is the
  645. real dBase III program without any SoftGuard code or encryption.  It requires
  646. only the DBASE.OVL file to run.
  647.  
  648.      If you have any comments on this unprotect routine or the PROLOCK.UNP
  649. routine, please leave them on the Atlanta PCUG BBS (404) 634-5731.
  650.  
  651.                                           The Lone Victor - 4/15/85
  652.  
  653.                 <> <> <> <> <> <> <> <> <> <> <>
  654. INSTRUCTIONS FOR UNPROTECTING PFS-FILE, PFS-REPORT AND PFS-WRITE.
  655.  
  656.  IMPORTANT!  COPY FILE.EXE AND/OR REPORT.EXE TO ANOTHER DISK FIRST.
  657.  DON'T MAKE THESE PATCHES ON YOUR ORIGINAL DISK! (USE THE USUAL DOS
  658.  COPY COMMAND)
  659.  
  660.   YOU SHOULD SEE, AMONG OTHER THINGS:  PUSH BP
  661.                                        MOV AX,DS
  662.                                        MOV ES,AX
  663.                                  (ETC)
  664.   IF YOU DON'T SEE THIS, TYPE -> Q  (YOU DON'T HAVE THE RIGHT VERSION)
  665.   OTHERWISE,
  666.   TYPE -> E 9248 EB 2B
  667.   TYPE -> W
  668.   TYPE -> Q
  669.   BACK IN DOS, RENAME FILE.ZAP TO FILE.EXE.  YOU NOW HAVE AN UNPROTECTED
  670.   COPY OF PFS-FILE.
  671.  
  672. FOR PFS-REPORT:
  673.   RENAME REPORT.EXE TO REPORT.ZAP
  674.   HAVE DEBUG.COM HANDY, AND TYPE -> DEBUG REPORT.ZAP
  675.   TYPE -> U 98BF
  676.   YOU SHOULD SEE, AMONG OTHER THINGS:  PUSH BP
  677.                                        MOV AX,DS
  678.                                        MOV ES,AX
  679.                                  (ETC)
  680.   IF YOU DON'T SEE THIS, TYPE -> Q  (YOU DON'T HAVE THE RIGHT VERSION)
  681.   OTHERWISE,
  682.   TYPE -> E 98C4 EB 2B
  683.   TYPE -> W
  684.   TYPE -> Q
  685.   BACK IN DOS, RENAME REPORT.ZAP TO REPORT.EXE.  YOU NOW HAVE AN
  686.   UNPROTECTED COPY OF PFS-REPORT.
  687.  
  688. For PFS-Write:
  689.  
  690.  RENAME PFSWRITE.EXE TO PFSWRITE.ZAP
  691.  DEBUG PFSWRITE.ZAP
  692.  U 235A
  693.  YOU SHOULD SEE, AMONG OTHER THINGS:  INT 13
  694.                                       JNB 2362
  695.  
  696.  IF YOU DONcT SEE THIS, TYPE -> Q (you don't have the right version)
  697.  OTHERWISE,
  698.  TYPE -> E235A 90 90 90 90
  699.  TYPE -> E2360 90 90
  700.  TYPE -> A2369
  701.  TYPE -> CMP AX,AX
  702.  TYPE -> <cr>
  703.  TYPE -> W
  704.  TYPE -> Q
  705.  
  706.  RENAME PFSWRITE.ZAP TO PFSWRITE.EXE.  YOU NOW HAVE AN UNPROTECTED COPY
  707.  OF PFS-WRITE.
  708.  
  709. ============================================================================
  710.  
  711.  P.S. From another author than the one who wrote the above.
  712.       The routine above is excellent, however I had a different version
  713.       of PFS FILE and PFS REPORT.  If you dont find the locations listed
  714.       above try these:
  715.  
  716.  PFS FILE   TYPE -> U 9223  YOU SHOULD SEE  PUSH BP
  717.                                             MOV AX,DS
  718.                                             MOV ES,AX
  719.                                       (ETC)
  720.  IF SO TYPE -> E 9228 EB 2B
  721.        TYPE -> W
  722.        TYPE -> Q
  723.  AND FOLLOW THE DIRECTIONS GIVEN ABOVE ABOUT RENAME ETC.
  724.  
  725.  PFS REPORT  TYPE -> U 988F  YOU SHOULD SEE PUSH BP
  726.                                             MOV AX,DS
  727.                                             MOV ES,AX
  728.                                       (ETC)
  729.  IF SO TYPE -> E 9894 EB 2B
  730.        TYPE -> W
  731.        TYPE -> Q
  732.  AND FOLLOW THE DIRECTIONS GIVEN ABOVE ABOUT RENAME & ETC.
  733.  
  734.  My thanks to the original author who worked so hard to help us.
  735.  Please use these routines for your own use. I needed to add DOS 2.1
  736.  and place these programs on double sided disks.  Don't rip off these
  737.  software manufacturers.
  738.  
  739. PROKEY 3.0 and several other programs. The approach I outline
  740. here works with any of these that are in COM file format. If
  741. anyone can improve it to work for EXE files PLEASE post it.
  742.   This general copy scheme uses a short sector of 256 bytes to
  743. store an essential piece of the program code. On startup, location
  744. 100H contains a JMP instruction to the code which reads this
  745. short sector. Locations 103H - 110H contain HLT instructions (hex F4).
  746. After the sector is read, its contents are overlayed onto locations
  747. 100H - 110H, replacing the dummy instruction codes. A branch to 100H
  748. then begins the actual program.
  749.    All we need to do is to stop execution after the changes are
  750. made and write down the contents of 100H - 110H; reloading the
  751. program and POKEing these changes results in an unprotected program.
  752.    Here's how its done:
  753. (1) Put PROTECTED disk in A: (you can write-protect it for safety)
  754.    and a disk containing DEBUG in B:
  755. (2) A:               Make A: the default.
  756. (3) B:DEBUG ULTIMAII.COM      (or PKLOAD.COM, LAYOUT.COM...)
  757. (4) -u 0100        Tell DEBUG to disassemble 0100-0120
  758. DEBUG responds with:
  759.   0100 JMP 88A0        (or whatever)
  760.   0103 HLT
  761.   0104 HLT             ...etc.
  762. (5) -u 88A0            Look at short-sector decrypting code.
  763. DEBUG responds with:
  764.   88A0 JMPS 88A7       Next "statements" are data locations; ignore.
  765. (6) -u 88A7            Now look for where program restarts at 100H.
  766. DEBUG responds with:
  767.   88A7 CALL 88C4
  768.   88AA CALL 892E
  769.   88AD JC 88BF      (If Carry is set, the disk is a copy. Go to DOS!)
  770. ..
  771.   88BA MOV AX,0100
  772.   88BD JMP AX         Paydirt! If you got this far, the program has
  773. ..                    written the REAL code into 0100 - 0120H.
  774. (7) -g 88BD           Tell DEBUG to run the program, stop here.
  775. (8) -d 0100 011F      Dump out the changed code.
  776. DEBUG responds with:
  777.   8C C8 05 25 07 8E D8 05-10 03 8E D0...  Two lines. WRITE DOWN for (12)
  778. (9) -q         Get out of DEBUG. You must reload to deprotect.
  779. (10) Make a copy of the disk; you can use copy *.*   Put copy in A:
  780. (11) B:DEBUG ULTIMAII.COM     load copy
  781. (12) -e 0100             Patch locations 0100 - 011F with what you
  782.                          wrote down above. Follow each entry with
  783.                          a SPACE until last entry; then hit ENTER.
  784. (13) -w               Write out new version of ULTIMAII.COM
  785. (14) -q               You've done it!
  786.  
  787.   I've been detailed because this works generally for any COM file.
  788. This method doesn't work for EXE files because while DEBUG can load
  789. relocatable modules and execute them with breakpoints (step 7 above),
  790. you cannot use debug to write an EXE file in relocatable form.
  791. Any suggestions?
  792.     L.Brenkus
  793.                 <> <> <> <> <> <> <> <> <> <> <>
  794.  
  795.                  DOUBLEDOS  -  Unprotect
  796.                                         Based on The Lone Victor's
  797.                                         routine.
  798.  
  799.      The following instructions show you how to bypass the SoftGuard
  800. copy protection scheme used on DOUBLEDOS version 1.00.  This is the same
  801. scheme used for FrameWork 1.10 and for Wordstar 2000 1.00.  Wordstar
  802. 2000 version 1.10 does not use a copy protection scheme, while versions
  803. 1.00 of dBase III and FrameWork used ProLock.  To unprotect Prolock disks
  804. read the file PROLOCK.UNP.
  805.  
  806.      First, using your valid, original DOUBLEDOS diskette, install it on a
  807. fixed disk.  Softguard hides three files in your root directory:
  808. CML0200.HCL, VDF0200.VDW, and DOUBLEDO.EXE.  It also copies DOUBLEDO.COM
  809. into your chosen DOUBLEDOS directory.  DOUBLEDO.EXE is the real DOUBLEDOS
  810. program, encrypted.  When you run DOUBLEDOS, the program DOUBLEDO.COM loads
  811. CML0200.HCL high in memory and runs it.  CML decrypts itself and reads
  812. VDF0200.VDW.
  813. The VDF file contains some code and data from the fixed disk FAT at the
  814. time of installation.  By comparing the information in the VDF file with
  815. the current FAT, CML can tell if the CML, VDF, and DOUBLEDO.EXE files are
  816. in the same place on the disk where they were installed.  If they have
  817. moved, say from a backup & restore, then DOUBLEDOS will not run.
  818.  
  819.      Second, un-hide the three files in the root directory.  You can do
  820. this with the programs ALTER.COM or FM.COM found on any BBS.
  821.  
  822.      Make copies of the three files, and of DOUBLEDO.COM, into some other
  823. directory.
  824.  
  825.      Hide the three root files again using ALTER or FM.
  826.  
  827.      Following the DOUBLEDOS  instructions, UNINSTALL DOUBLEDOS.  You can now
  828. put away your original DOUBLEDOS diskette.  We are done with it.
  829.  
  830.      Next we will make some patches to CML0200.HCL to allow us to trace
  831. through the code in DEBUG.  These patches will keep it from killing our
  832. interrupt vectors.
  833.  
  834. debug cml0200.hcl
  835. e 3F9 <CR>  2A.4A <CR>          ; change the 2A to 4A
  836. e 49D <CR>  F6.16 <CR>          ;  if any of these numbers don't show up
  837. e 506 <CR>  E9.09 <CR>          ;  it's not working.
  838. e A79 <CR>  00.20 <CR>          ;
  839. e AE9 <CR>  00.20 <CR>          ;
  840. e 73C  97 FA FA F4 F1 7E <CR>   ; this is an encrypted call to 0:300
  841. w                               ; write out the new CML file
  842. q                               ; quit debug
  843.  
  844.      Now copy your four saved files back into the root directory and
  845. hide the CML0200.HCL, VDF0200.VDW, and DOUBLEDOS.EXE files using ALTER or FM.
  846.  
  847.      We can now run DOUBLEDO.COM using DEBUG, trace just up to the point
  848. where it has decrypted DOUBLEDO.EXE, then write that file out.
  849.  
  850. debug dOUBLEDO.COM
  851. r <CR>                          ; write down the value of DS for use below.
  852. a 0:300 <CR>                    ; we must assemble some code here
  853.         pop     ax
  854.         cs:
  855.         mov     [320],ax        ; save return address
  856.         pop     ax
  857.         cs:
  858.         mov     [322],ax
  859.         push    es              ; set up stack the way we need it
  860.         mov     ax,20
  861.         mov     es,ax
  862.         mov     ax,0
  863.         cs:
  864.         jmp     far ptr [320]   ; jump to our return address
  865.  <CR>
  866. g 406                           ; now we can trace CML
  867. g 177                           ; this stuff just traces past some
  868. g 1E9                           ;   encryption routines.
  869. t
  870. g 54E                           ; wait while reading VDF & FAT
  871. g=559 569
  872. g=571 857                       ; DOUBLEDO.EXE has been decrypted
  873. rBX <CR>                        ; length DOUBLEDO.EXE = 04800 bytes
  874. :0                              ; set BX to 0
  875. rCX <CR>
  876. :4800                           ; set CX to 4800.
  877. nDOUBLEDO                       ; name of file to write to
  878. w XXXX:100                      ; where XXXX is the value of DS that
  879.                                 ;   you wrote down at the begining.
  880. q                               ; quit debug
  881.  
  882.      Last, unhide and delete the three root files CML0200.HCL, VDF0200.VDW,
  883. and DOUBLEDO.EXE.  Delete DOUBLEDO.COM and rename DOUBLEDO to DOUBLEDO.EXE.
  884. This is the real DOUBLEDOS program without any SoftGuard code or
  885. encryption.  It requires only the DOUBLGD2.PGM and DDCONFIG.SYS files to
  886. run.
  887.  
  888.                  DOUBLEDOS  -  Unprotect
  889.                                         Based on The Lone Victor's
  890.                                         routine.
  891.                 <> <> <> <> <> <> <> <> <> <> <>
  892.      The following instructions show you how to bypass the SoftGuard
  893. copy protection scheme used on DOUBLEDOS version 1.00.  This is the same
  894. scheme used for FrameWork 1.10 and for Wordstar 2000 1.00.  Wordstar
  895. 2000 version 1.10 does not use a copy protection scheme, while versions
  896. 1.00 of dBase III and FrameWork used ProLock.  To unprotect Prolock disks
  897. read the file PROLOCK.UNP.
  898.  
  899.      First, using your valid, original DOUBLEDOS diskette, install it on
  900. a fixed disk.  Softguard hides three files in your root directory:
  901. CML0200.HCL, VDF0200.VDW, and DOUBLEDO.EXE.  It also copies DOUBLEDO.COM into
  902. your chosen DOUBLEDOS directory.  DOUBLEDO.EXE is the real DOUBLEDOS
  903. program, encrypted.  When you run DOUBLEDOS, the program DOUBLEDO.COM loads
  904. CML0200.HCL high in memory and runs it.  CML decrypts itself and reads
  905. VDF0200.VDW.
  906. The VDF file contains some code and data from the fixed disk FAT at the
  907. time of installation.  By comparing the information in the VDF file with
  908. the current FAT, CML can tell if the CML, VDF, and DOUBLEDO.EXE files are
  909. in the same place on the disk where they were installed.  If they have
  910. moved, say from a backup & restore, then DOUBLEDOS will not run.
  911.  
  912.      Second, un-hide the three files in the root directory.  You can do
  913. this with the programs ALTER.COM or FM.COM found on any BBS.
  914.  
  915.      Make copies of the three files, and of DOUBLEDO.COM, into some other
  916. directory.
  917.  
  918.      Hide the three root files again using ALTER or FM.
  919.  
  920.      Following the DOUBLEDOS  instructions, UNINSTALL DOUBLEDOS.  You can now
  921. put away your original DOUBLEDOS diskette.  We are done with it.
  922.  
  923.      Next we will make some patches to CML0200.HCL to allow us to trace
  924. through the code in DEBUG.  These patches will keep it from killing our
  925. interrupt vectors.
  926.  
  927. debug cml0200.hcl
  928. e 3F9 <CR>  2A.4A <CR>          ; change the 2A to 4A
  929. e 49D <CR>  F6.16 <CR>          ;  if any of these numbers don't show up
  930. e 506 <CR>  E9.09 <CR>          ;  it's not working.
  931. e A79 <CR>  00.20 <CR>          ;
  932. e AE9 <CR>  00.20 <CR>          ;
  933. e 73C  97 FA FA F4 F1 7E <CR>   ; this is an encrypted call to 0:300
  934. w                               ; write out the new CML file
  935. q                               ; quit debug
  936.  
  937.  
  938.      Now copy your four saved files back into the root directory and
  939. hide the CML0200.HCL, VDF0200.VDW, and DOUBLEDOS.EXE files using ALTER or FM.
  940.  
  941.      We can now run DOUBLEDO.COM using DEBUG, trace just up to the point
  942. where it has decrypted DOUBLEDO.EXE, then write that file out.
  943. debug dOUBLEDO.COM
  944. r <CR>                          ; write down the value of DS for use below.
  945. a 0:300 <CR>                    ; we must assemble some code here
  946.         pop     ax
  947.         cs:
  948.         mov     [320],ax        ; save return address
  949.         pop     ax
  950.         cs:
  951.         mov     [322],ax
  952.         push    es              ; set up stack the way we need it
  953.         mov     ax,20
  954.         mov     es,ax
  955.         mov     ax,0
  956.         cs:
  957.         jmp     far ptr [320]   ; jump to our return address
  958.  <CR>
  959. g 406                           ; now we can trace CML
  960. t
  961. g 177                           ; this stuff just traces past some
  962. g 1E9                           ;   encryption routines.
  963. t
  964. g 54E                           ; wait while reading VDF & FAT
  965. g=559 569
  966. g=571 857                       ; DOUBLEDO.EXE has been decrypted
  967. rBX <CR>                        ; length DOUBLEDO.EXE = 04800 bytes
  968. :0                              ; set BX to 0
  969. rCX <CR>
  970. :4800                           ; set CX to 4800.
  971. nDOUBLEDO                       ; name of file to write to
  972. w XXXX:100                      ; where XXXX is the value of DS that
  973.                                 ;   you wrote down at the begining.
  974. q                               ; quit debug
  975.  
  976.      Last, unhide and delete the three root files CML0200.HCL, VDF0200.VDW,
  977. and DOUBLEDO.EXE.  Delete DOUBLEDO.COM and rename DOUBLEDO to DOUBLEDO.EXE.
  978. This is the real DOUBLEDOS program without any SoftGuard code or
  979. encryption.  It requires only the DOUBLGD2.PGM and DDCONFIG.SYS files to
  980. run.
  981.  
  982.                             <-----<<END>>----->
  983.           ++++++++++++++++++++++++++++++++++++++++++++++++++++++
  984.           ++++++++++++++++++++++++++++++++++++++++++++++++++++++
  985. !
  986.  
  987.