home *** CD-ROM | disk | FTP | other *** search
/ Various Unprotection Examples / unprotect.zip / unprotect / PRNTSHOP / PRNTSHOP.UNP < prev   
Text File  |  1988-12-20  |  7KB  |  192 lines

  1. Here are two different PRINTSHOP unprotect schemes that I found on local
  2. BBS's.  The second version worked for me.
  3.  
  4. -------------------------------------------------------------------------
  5.  
  6. Unprotect The Print Shop by Broderbund
  7.  
  8.  
  9. The Print Shop employs two sections of code to copy protect itself.
  10.  
  11. The first is embedded in PS.EXE and is exercised when the program is run
  12. from a floppy.
  13.  
  14. The second is embedded in PSINIT.OVR and is employed when the program is
  15. run from a hard or ram disk.
  16.  
  17. Once activated, both seek out a specially formatted track on the A: drive
  18. and terminate the program if not found.
  19.  
  20. Both sections of code will be un-hooked here so that the program will run
  21. from either a floppy or a hard disk.
  22.  
  23.  
  24. As always, make a copy of the program code to work on so as to protect your
  25. original. We will use the DOS supplemental program DEBUG to patch the code
  26. so as to remove the copy protection.
  27.  
  28. DEBUG PS.ZAP                                    Start DEBUG
  29.  
  30. S0 9000 CD 13                                   Search for Disk interrupt 13
  31.  
  32. XXXX:3AC6                                       You should find these two:
  33. XXXX:3ADF
  34.  
  35. U 3AC6                                          Unassemble the code to make sure
  36.                                                   you're in the right place :
  37.  
  38. XXXX:3AC6       INT     13                      A test for any disk in A:
  39. XXXX:3AC8       MOV     BYTE PTR [0A91],02
  40. XXXX:3ACD       DEC     BYTE PTR [0A91]
  41. XXXX:3AD1       JZ      3AE6
  42. XXXX:3AD3       MOV     DH,00                   \
  43. XXXX:3AD5       MOV     DL,00                    | This sets up a look for the
  44. XXXX:3AD7       MOV     CH,09                    |  special track
  45. XXXX:3AD9       MOV     CL,0A                    |
  46. XXXX:3ADB       MOV     AL,01                    |
  47. XXXX:3ADD       MOV     AH,04                    |
  48. XXXX:3AE1       CMP     AH,00                   If not there ... Loop then
  49. XXXX:3AE4       JNZ     3ACD                       Zonk ! Terminate Program...
  50.  
  51.  
  52. A 3AC6                                          Get rid of 1 st diskette look
  53.  
  54. XXXX:3AC6       NOP                             Remove the INT 13
  55. XXXX:3AC7       NOP
  56. XXXX:3AC8
  57.  
  58. A 3ADD                                          Get rid of the real test :
  59.  
  60. XXXX:3ADD       MOV     AH,00                   Give it what it wants in AH
  61. XXXX:3ADF       NOP                             Remove the INT 13
  62. XXXX:3AE0       NOP
  63. XXXX:3AE1
  64.  
  65. W                                               Write out the changed code
  66.  
  67. Q                                               Quit DEBUG
  68.  
  69.  
  70. (The program will now run from floppy disks without further changes)
  71.  
  72. Now for the second portion of the copy protection :
  73.  
  74. DEBUG PSINIT.OVR                                Start DEBUG (using a copy !)
  75.  
  76. S0 2000 CD 13                                   Look for disk interrupt 13
  77.  
  78. XXXX:0479                                       You should find these three:
  79. XXXX:0492
  80. XXXX:04BD
  81.  
  82. U 0479
  83.  
  84. XXXX:0479       INT     13                      A test for any disk in A:
  85. XXXX:047B       MOV     BYTE PTR [CD57],02
  86. XXXX:0480       DEC     BYTE PTR [CD57]
  87. XXXX:0484       JZ      04DB
  88. XXXX:0486       MOV     CL,11                   \
  89. XXXX:0488       MOV     AH,04                    |
  90. XXXX:048C       MOV     CH,09                    | This sets up a look for the
  91. XXXX:048E       MOV     DL,00                    |   special track
  92. XXXX:0490       MOV     AL,01                    |
  93. XXXX:0492       INT     13                      /
  94. XXXX:0494       CMP     AH,00                   If not there ... Loop then
  95. XXXX:0497       JNZ     0480                       Zonk ! Terminate Program...
  96.  
  97.                                                 (Look familiar ?)
  98.  
  99. U 04BD
  100.  
  101. XXXX:04BD       INT     13                      This one's a read (same idea)
  102. XXXX:04BF       CMP     AH,00
  103. XXXX:04C2       JNZ     04A5
  104. XXXX:04C4       ADD     BX,018B
  105. XXXX:04C8       MOV     CL,05
  106. XXXX:04CA       ES:
  107. XXXX:04CB       MOV     AL,[BX]
  108. XXXX:04CD       CMP     AL,41
  109. XXXX:04CF       JNZ     04DB
  110. XXXX:04D1       INC     BX
  111. XXXX:04D4       JNZ     04CA
  112. XXXX:04D6       MOV     AX,0000                 This is the success exit !
  113. XXXX:04D9       JMP     04DE
  114.  
  115. A 0479
  116.  
  117. XXXX:0479       NOP                             Remove INT 13
  118. XXXX:047A       NOP
  119. XXXX:047B
  120.  
  121. A 0490
  122.  
  123. XXXX:0490       MOV     AH,00                   Give it what it wants in AH
  124. XXXX:0492       NOP                             Remove INT 13
  125. XXXX:0493       NOP
  126. XXXX:0494
  127.  
  128. A 04BD
  129.  
  130. XXXX:04BD       JMP     04D6                    Jump to success exit code
  131. XXXX:04BF
  132. W                                               Write out the changed code
  133.  
  134. Q                                               Quit DEBUG
  135.  
  136.  
  137. The program may now be run from a hard disk or floppy as desired. The hard
  138. disk set up will ask for the master diskette to be inserted but won't do
  139. any checking or diskette access at all.
  140.  
  141. This technique is published for the benefit of legitmate purchasers of the
  142. product who deplore copy-protected software and wish to protect themselves
  143. against disk failure. Undoubtably there are those who will abuse this
  144. knowledge to trade unauthorized copies. They must live with the knowledge
  145. that they are stealing and answer in the court of their own conscience.
  146.  
  147.  
  148.  
  149.                                                 The Swamp Fox
  150.  
  151.  
  152. --------------------------------------------------------------------------
  153.  
  154.         Print Shop unprotect procedures
  155.  
  156.         The  Print  Shop uses an installation process which  records  the 
  157.         physical  location  of the program in an  overlay  file.   During 
  158.         program  initialization, a check is made to see if  the  location 
  159.         has changed.  If it has, due to a restore, a disk reorganization, 
  160.         a  disk  optimization, or anything, the program refuses  to  run.  
  161.         The  code  to do the checking is actually stored in  the  overlay 
  162.         file.    These  procedures  force  the  result  to  be   accepted 
  163.         regardless of whether the check is correct or not.
  164.  
  165.         1)  Install  the program in the usual way, using the  Print  Shop 
  166.         install programs.
  167.  
  168.         2)  Copy the files to another directory.
  169.  
  170.         3)  Uninstall the programs, again using the Print Shop programs.
  171.  
  172.         4)  Now CD to the directory which has the copied files.
  173.  
  174.         5)  Use DEBUG to make the following changes:
  175.  
  176.              -S0 FFF 59 3B C8 75 1E        This is a version check.
  177.              xxxx:024A                     If you don't get this number,
  178.                                                 STOP NOW.  Wrong version!
  179.              -e24d 90 90                   NOP out an instruction
  180.              -s0 fff 30 e8 13 df 85 co 74 29
  181.              xxxx:0265                     If you don't get this number,
  182.                                                 STOP NOW.  Wrong version!
  183.              -e26b eb                      Change a conditional jump to
  184.                                                 unconditional.
  185.              -w                            Write the file back
  186.              -q                            Quit DEBUG
  187.  
  188.         The  Print  Shop program will now run from any directory  on  any 
  189.         disk.
  190.  
  191.  
  192.