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

  1.  
  2. ***************************************************
  3. ***  Pirate Magazine Issue III-3 / File 7 of 9  ***
  4. ***  Cracking Tips  (Part 5)                    ***
  5. ***************************************************
  6.  
  7. In this file:  Graphwriter 4.21
  8.                TheDraw
  9.                SideKick 1.00A
  10.                PFS Report
  11.                PCDRAW 1.4
  12.                Signmaster
  13.  
  14.  
  15. FOR THE USERS THAT HAVE 'GRAPHWRITER'  VER 4.21
  16. -------------------------------------------------------------------
  17. FROM : THE A.S.P ; (Against Software Protection)
  18.  
  19.       DATED : OCT 19,1984 (FIRST RELEASE)
  20. ORIGINALLY SUBMITTED TO ASA FULTONS BBS (THE SHINING SUN -305-273-0020)
  21.                  AND TO
  22.                         LEE NELSONS BBS (PC-FORUM        -404-761-3635)
  23.  
  24. PLEASE NOTE THAT THESE UNPROTECT PROCEDURES INVOLVE FROM 4 HOURS TO
  25. ___________________________________________________________________
  26.  
  27. 40 OR MORE HOURS ( 8+ HOURS FOR 'GRAPHWRITER' ) OF
  28. SINGLE STEPPING THRU CODE AND FIGURING OUT THE
  29. INTENT OF THE ORIGINAL CODE.. SO I WOULD APPRECIATE IT WHEN U PASS
  30.  
  31. THIS ON TO OTHER BOARDS YOU DO NOT ALTER THIS OR TRY TO TAKE CREDIT
  32. FOR MY LOST SLEEP.... THE A.S.P... (J.P. TO HIS FRIENDS)
  33.  
  34. OH, AS A FURTHER NOTE. I SEE SOME BBS'S ARE NOW CHARGING U TO BE REGISTERED
  35. TO USE THEIR SYSTEM. FIRST OF ALL I GIVE U FROM 4 TO 60 HOURS OF MY TIME
  36. AT NO COST TO YOU AND I DO NOT LOOK TO KINDLY TO SUCH BBS'S PUTTING ON
  37.  in.  Thanks    John Roswick, Bismarck.
  38.     Keywords: SIDEKICK PROKEY PATCH FIX BUGS COMPATIBILITY BORLAND
  39.                 <> <> <> <> <> <> <> <> <> <> <>
  40.  UNPROTECT FOR -SIDEKICK-
  41.      Attention Sidekick/Prokey users !  We at Borland were having
  42. trouble getting Sidekick to be compatible with Rosesoft's Prokey and
  43. as many of you Prokey users out there know everything locked up when the
  44. two got together.  The reason Prokey does not work is because it trashes
  45. some of the registers when running and confuses Sidekick as to make your
  46. terminal go down.  Enclosed is the portion of Prokey which does this.
  47.  
  48. 0730  2EF606D402FF              TEST    CS:BYTE PTR [02D4H],OFFH
  49. 0736  7409                      JE      0741H
  50. 0738  2EFF2EC602                JMP     CS:DWORD PTR [02C6H]
  51. 073D  5B                        POP     BX
  52. 073E  1F                        POP     DS
  53. 073F  EBF7                      JMP     SHORT 0738H
  54. 0741  1E                        PUSH    DS
  55. 0742  53                        PUSH    BX
  56. 0743  8CCB                      MOV     BX,CS
  57. 0745  8EDB                      MOV     DS,BX
  58. 0747  FB                        STI
  59. 0748  C5053D0100                MOV     BYTE PTR [013DH],00H
  60. 074D  803E660400                CMP     BYTE PTR [0466H],00H
  61. 0752  7420                      JE      0774H
  62. 0754  833E670400                CMP     WORD PTR [0469H],00H
  63. 0759  7507                      JNE     0762H
  64. 075B  833E670400                CMP     WORD PTR [0467H],00H
  65. 0760  740D                      JE      076FH
  66. 0762  832E670401                SUB     WORD PTR [0467H],01H
  67. 0767  831E690400                SBB     WORD PTR [0469H],00H
  68. 076C  EB06                      JMP     SHORT 0774H
  69. 076E  90                        NOP
  70. 076F  C606660400                MOV     BYTE PTR [0466H],00H
  71. 0774  803E530400                CMP     BYTE PTR [0466H],00H
  72. 0779  74C2                      JE      037DH
  73. 077B  833E662400                CMP     WORD PTR [2466H],00H
  74. 0780  7507                      JNE     0789H
  75. 0782  833E682400                CMP     WORD PTR [2468H],00H
  76. 0787  740C                      JE      0795H
  77. 0789  832E682401                SUB     WORD PTR [2468H],01H
  78. 078E  831E662400                SBB     WORD PTR [2466H],00H
  79. 0793  EBA8                      JMP     SHORT 073DH
  80. 0795  E8841D                    CALL    251CH                    ;HMMM !
  81. 0798  EBA3                      JMP     SHORT 073DH
  82.  
  83. THE SAGA CONTINUES ...
  84.  
  85. 251C  50                        PUSH    AX
  86. 251D  1E                        PUSH    DS
  87. 251E  A05304                    MOV     AL,[0453H]
  88. 2521  3C01                      CMP     AL,01H
  89. 2523  7407                      JE      252CH
  90. 2525  3C02                      CMP     AL,02H
  91. 2527  743F                      JE      2568H
  92. 2529  1F                        POP     DS
  93. 252A  58                        POP     AX
  94. 252B  C3                        RET     ?NEAR
  95. 252C  BD9D2D                    MOV     BP,2D9DH       BP DESTROYED
  96. 252F  E8480E                    CALL    337AH
  97. 2532  A16C24                    MOV     AX,[246CH]
  98. 2535  A39D2D                    MOV     [2D9DH],AX
  99. 2538  BD9D2D                    MOV     BP,2D9DH
  100. 253B  E8E30D                    CALL    3321H
  101. 253E  BD9D2D                    MOV     BP,2D9DH
  102. 2541  BEE023                    MOV     SI,23E0H       SI DESTROYED
  103. 2544  B601                      MOV     DH,01H         DX DESTROYED
  104. 2546  B201                      MOV     DL,01H         (BUT WILL BE RESTORED
  105. 2548  E8230C                    CALL    317FH          BY THE BIOS)
  106. 254B  E88407                    CALL    2CD2H
  107. 254E  8B366024                  MOV     SI,[2460H]
  108. 2552  387D07                    CALL    2CD2H
  109. 2555  A16224                    MOV     AX,[2462H]
  110. 2558  A36824                    MOV     [2468H],AX
  111. 255B  C70666240000              MOV     WORD PTR [2466H],000H
  112. 2561  C606530402                MOV     BYTE PTR [0453H],02H
  113. 2566  EBC1                      JMP     SHORT 2529H
  114. 2568  BD9D2D                    MOV     BP,2D9DH
  115. 256B  E80C0E                    CALL    337AH
  116. 256E  C606530400                MOV     BYTE PTR [0453H],00H
  117. 2573  EBB4                      JMP     SHORT 2529H
  118.  .
  119.  .
  120.  
  121. Prokey does not save and restore all registers when trapping interrupt
  122. 1C.  The reason why this error occurs at a higher frequency when using
  123. Sidekick is beyond this discussion. However, to verify the error try the
  124. following:
  125.  
  126. 1. Start Prokey
  127. 2. Define a key recursively
  128. 3. Notice prokey now issues an error message
  129. 4. terminate definition (fast...)
  130. 5. press return 100 times
  131. 6. if prokey did not crash repeat step 2-6
  132.  
  133. Register destroying occurs when Prokey is flashing error message.  You must
  134. terminate and press return as fast as possible, and be logged on a floppy
  135. drive (important: let your prompt show the active directory in order to let
  136. dos read on the disk).
  137.  
  138. The following program establishes a trap at interrupt 8 (to make sure Prokey
  139. or others does not overwrite it, bios int 8 then activates 1C).
  140.  
  141. CODE                          SEGMENT
  142.                               ASSUME     CS:CODE
  143.                               ORG        100H
  144. START                         PROC
  145.                               JMP        SHORT SETUP
  146. START                         ENDP
  147. INT08SAVE                     DD
  148. INT08TRAP                     PROC       FAR
  149.                               PUSH       AX
  150.                               PUSH       BX
  151.                               PUSH       CX
  152.                               PUSH       DX
  153.                               PUSH       SI
  154.                               PUSH       DI
  155.                               PUSH       BP
  156.                               PUSH       DS
  157.                               PUSH       ES
  158.                               PUSHF
  159.                               CALL       INT08SAVE
  160.                               POP        ES
  161.                               POP        DS
  162.                               POP        BP
  163.                               POP        DI
  164.                               POP        SI
  165.                               POP        DX
  166.                               POP        CX
  167.                               POP        BX
  168.                               POP        AX
  169.                               IRET
  170. INT08TRAP                     ENDP
  171. EOTRAP:
  172. SETUP                         PROC
  173.  
  174.                               MOV        DS,AX
  175.                               MOV        SI,20H
  176.                               CLI
  177.                               LES        AX,DWORD PTR[SI]
  178.                               MOV        WORD PTR INT08SAVE,AX
  179.                               MOV        WORD PT
  180.                               MOV        WORD PTR [SI],OFFSET INT08TRAP
  181.                               MOV        [SI+2],CS
  182.                               STI
  183.                               MOV        DX,OFFSET EOTRAP+1
  184.  
  185. SETUP                         ENDP
  186. CODE                          ENDS
  187.                               END        START
  188.  
  189. It may be faster to enter the following bytes using debug and writing them
  190. to the file profix.com, thus saving your original prokey file:
  191.  
  192.  
  193. e100
  194. 0100:  EB 1D 00 00 00 00 50 53 51 52 56 57 55 1E 06 9C
  195. 0110:  2E FF 1E 02 01 07 1F 5D 5F 5E 5A 59 5B 58 CF 33
  196. 0120:  C0 8E D8 BE 20 00 FA C4 04 2E A3 02 01 2E 8C 06
  197. 0130:  04 01 C7 04 06 01 8C 4C 02 FB BA 20 01 CD 27
  198. RCX
  199. 3F
  200. NPROFIX.COM
  201. W
  202.  
  203. NOW USE PROFIX INSTEAD OF PROKEY
  204.  
  205. NOTE:  THIS MAY NOT BE THE COMPLETE SOLUTION AS THE WORD STILL DOES NOT
  206. WORK WITH PROKEY.  FURTHERMORE THIS HAS ONLY BEEN TESTED USING PROKEY
  207. VERSION 3.0 - OLDER VERSIONS MAY HAVE OTHER BUGS!
  208. INSTRUCTIONS FOR UNPROTECTING PFS-FILE AND PFS-REPORT.
  209.  
  210.  IMPORTANT!  COPY FILE.EXE AND/OR REPORT.EXE TO ANOTHER DISK FIRST.
  211.  DON'T MAKE THESE PATCHES ON YOUR ORIGINAL DISK! (USE THE USUAL DOS
  212.  COPY COMMAND)
  213.  
  214. FOR PFS-FILE:
  215.   RENAME FILE.EXE TO FILE.ZAP
  216.   HAVE DEBUG.COM HANDY
  217.   TYPE -> DEBUG FILE.ZAP
  218.   TYPE -> U 9243
  219.   YOU SHOULD SEE, AMONG OTHER THINGS:  PUSH BP
  220.                                        MOV AX,DS
  221.                                        MOV ES,AX
  222.    (ETC)
  223.   IF YOU DON'T SEE THIS, TYPE -> Q  (YOU DON'T HAVE THE RIGHT VERSION)
  224.   OTHERWISE,
  225.   TYPE -> E 9248 EB 2B
  226.   TYPE -> W
  227.   TYPE -> Q
  228.   BACK IN DOS, RENAME FILE.ZAP TO FILE.EXE.  YOU NOW HAVE AN UNPROTECTED
  229.   COPY OF PFS-FILE.
  230.  
  231. FOR PFS-REPORT:
  232.   RENAME REPORT.EXE TO REPORT.ZAP
  233.   HAVE DEBUG.COM HANDY, AND TYPE -> DEBUG REPORT.ZAP
  234.   TYPE -> U 98BF
  235.   YOU SHOULD SEE, AMONG OTHER THINGS:  PUSH BP
  236.                                        MOV AX,DS
  237.                                        MOV ES,AX
  238.    (ETC)
  239.   IF YOU DON'T SEE THIS, TYPE -> Q  (YOU DON'T HAVE THE RIGHT VERSION)
  240.   OTHERWISE,
  241.   TYPE -> E 98C4 EB 2B
  242.   TYPE -> W
  243.   TYPE -> Q
  244.   BACK IN DOS, RENAME REPORT.ZAP TO REPORT.EXE.  YOU NOW HAVE AN
  245.   UNPROTECTED COPY OF PFS-REPORT.
  246.  
  247. For those of you whose PFS:FILE and PFS:REPORT do not match the other
  248. PFS zaps on this board, try these:
  249.  
  250. ----------------------------------------------------------------------
  251.  
  252. For PFS:FILE, copy FILE.EXE to another disk, and do:
  253.  
  254. RENAME FILE.EXE FILE.ZAP
  255. DEBUG FILE.ZAP
  256. U 9213
  257. should show  ...   PUSH BP
  258.                    MOV CX,0004
  259. which is the first part of a timing loop.
  260. if it doesn't, quit; else do:
  261. E 9217 EB 18
  262. U 9213
  263. should show  ...   PUSH BP
  264.                    MOV CX,0004
  265.                    JMP 9231
  266. if so, do:
  267. W
  268. Q
  269. RENAME FILE.ZAP FILE.EXE
  270.  
  271. ----------------------------------------------------------------------
  272.  
  273. For PFS:REPORT, copy REPORT.EXE to another disk, and do:
  274.  
  275. RENAME REPORT.EXE REPORT.ZAP
  276. DEBUG REPORT.ZAP
  277. U 9875
  278. should show  ...   PUSH BP
  279.                    MOV AX,DS
  280.                    MOV ES,AX
  281. if it doesn't, quit; else do:
  282. E 987A EB 11
  283. U 9875
  284. should show  ...   PUSH BP
  285.                    MOV AX,DS
  286.                    MOV ES,AX
  287.                    JMP 988D
  288. if so, do:
  289. W
  290. Q
  291. RENAME REPORT.ZAP REPORT.EXE
  292.  
  293. ----------------------------------------------------------------------
  294.  
  295. if everything was OK, your new versions of PFS:FILE and PFS:REPORT
  296. should run just fine without the original diskettes.
  297.  
  298. ----------------------------------------------------------------------
  299.  
  300. Zaps provided by Lazarus Associates
  301.  
  302.                 <> <> <> <> <> <> <> <> <> <> <>
  303. ----------------------------------------------------------UNPROTECT IBM PERSONAL
  304.  
  305.  1. REN MCEMAIL.EXE X
  306.  2. DEBUG X               DOS 2.xx Version
  307.  3. A EB47 JMP EB4F    (was JNZ EB4F)
  308.  4. A EBEF NOP NOP     (was JZ  EC0B)
  309.  5. A EC06 NOP NOP     (was JNZ EC0B)
  310.  6. W
  311.  7. Q
  312.  8. REN X MCEMAIL.EXE
  313.  
  314. IMPORTANT! All copies of PCM must have this patch
  315. (i.e. the programs on both ends of a connection).
  316. This has been tested on a PCjr and PC.
  317.  
  318.                 <> <> <> <> <> <> <> <> <> <> <>
  319. FOR THE USERS THAT HAVE 'PC-DRAW' V1.4
  320. ------------------------------------------
  321. FROM : THE A.S.P ; (Against Software Protection)
  322.  
  323. ORIGINALLY SUBMITTED TO ASA FULTONS BBS - SHINING SUN :305-273-0020
  324.                     AND WHIT WYANTS BBS - PC-CONNECT  :203-966-8869
  325. PLEASE NOTE THAT THESE UNPROTECT PROCEDURES INVOLVE FROM 4 HOURS TO
  326. (+1 HOURS FOR PC-DRAW V1.4)
  327. 40 OR MORE HOURS OF SINGLE STEPPING THRU CODE AND FIGURING OUT THE
  328. INTENT OF THE ORIGINAL CODE.. SO I WOULD APPRECIATE IT WHEN U PASS
  329. THIS ON TO OTHER BOARDS YOU DO NOT ALTER THIS OR TRY TO TAKE CREDIT
  330. FOR MY LOST SLEEP.... THE A.S.P... ORLANDO FLA. (J P , TO HIS FRIENDS)
  331. IF YOU HAVE A HARD DISK OR WANT TO CREATE A BACKUP COPY THAT IS NOT
  332. TIED INTO THE PC-DRAW DISKETTE...IN CASE YOUR ONLY COPY GOES BAD
  333. . THIS PATCH WILL REMOVE THE COPY PROTECTION COMPLETELY....
  334.   AS ALWAYS THIS IS FOR YOUR PERSONAL PEACE OF MIND ONLY
  335. IT IS NOT MEANT TO BYPASS ANY COPYRIGHTS..YOU ARE BY LAW BOUND BY
  336. YOUR PURCHASE LICENSE AGREEMENT.
  337.   IF YOU HAVE A HARD DISK AND WANT TO PUT THE PROGRAM ON SUCH
  338. WHY SHOULD YOU BE TIED TO A FLOPPY. YOU HAD TO GIVE UP A LOT OF
  339. 'BIG MACS' TO GET YOUR HARD DISK.
  340.  
  341.      THIS WRITE UP ASSUMES THAT YOU ARE FAMILIAR WITH DEBUG,
  342.  
  343. 1). FORMAT A CORRESPONDING EQUAL NUMBER OF DOS2.0 OR 2.1 DISKS
  344.    AS SYSTEM DISKS
  345.  
  346. 2). LABEL EACH OF THE 2.X FORMATTED DISKS THE SAME AS EACH ONE OF
  347.    THE ORIGINAL 'PC-DRAW' DISKS
  348.  
  349. 3). COPY THE FILES FROM THE ORIGINAL DISKS TO THE 2.X FORMATTED DISK
  350.    ON A ONE FOR ONE BASIS, USING 'COPY' COMMAND
  351.  
  352. 4). PLACE THE ORIGINAL DISKS IN A SAFE PLACE, WE DONT NEED THEM ANY MORE.
  353.  
  354. 5). PLACE 'DISK 1' IN THE 'A' DRIVE
  355. 6). RENAME PC-DRAW.EXE PC-DRAW
  356. 7). DEBUG PC-DRAW
  357. 8)  ENTER -S CS:100 L EFFF CD 13
  358. 9). FIRST YOU SHOULD SEE THE FOLLOWING CODE AT ADDRESS
  359.        CS:4D45        CD 13 INT 13
  360.     IF U DONT U MAY HAVE A DIFFERENT VERSION SO DONT PROCEED ANY FARTHER,
  361.     ENTER THE CHANGE TO CHANGE "INT 13" TO "NOP" AND "STC", AND FORCE A JUMP
  362.  10).  ENTER -E 4D45 90 F9 EB 28
  363.  11). ENTER -W
  364.  12). ENTER -Q
  365.  13). RENAME PC-DRAW PC-DRAW.EXE
  366.  
  367. NOTE: PC-DRAW IS NOW COMPLETELY UNPROTECTED.
  368.     IF U WANT TO USE 'PC-DRAW' FROM HARD DISK OR RAM DISK U MUST USE THE
  369.     CORRECT 'ASSIGN=', SINCE 'PC-DRAW' APPEARS TO HAVE DRIVES HARD CODED.
  370.  
  371.  
  372.       ALSO FOR V1.2 AND 1.3 THE BAD TRACK CHECK WAS IN DIAGRAM.EXE,
  373.      NOTE THAT THE CHECK IS NOW DONE IN PC-DRAW.EXE.
  374.  
  375.   ENJOY YOUR NEW FOUND FREEDOM..HARD DISKS FOREVER!!!!!
  376. END OF TRANSFER - PRESS ENTER TO RETURN TO MENU
  377. This procedure will unprotect the version 1.10A of SIDEKICK.
  378.  
  379. Many thanks to the individual who provided the procedure
  380. for the version 1.00A.
  381.  
  382. The only major difference between the two versions is the offset
  383. address of the instructions to be modified.
  384.  
  385. Using DEBUG on SK.COM, NOP out the CALL 8C1E at location 07CA ----+
  386.                                                                   |
  387. Change the OR  AL,AL at 07D9 to  OR  AL,01 --------+              |
  388.                                                    |              |
  389. .....and that's it!                               |              |
  390.                                                    |              |
  391.                      (BEFORE ZAP)                  |              |
  392. 78A7:07CA E85184        CALL    8C1E <----------------------------+
  393. 78A7:07CD 2E            CS:                        |              |
  394. 78A7:07CE 8E163E02      MOV     SS,[023E]          |              |
  395. 78A7:07D2 2E            CS:                        |              |
  396. 78A7:07D3 8B264002      MOV     SP,[0240]          |              |
  397. 78A7:07D7 1F            POP     DS                 |              |
  398. 78A7:07D8 59            POP     CX                 |              |
  399. 78A7:07D9 0AC0          OR      AL,AL   <----------+              |
  400.                                                    |              |
  401.                      (AFTER ZAP)                   |              |
  402. 78A7:07CA 90            NOP         <-----------------------------+
  403. 78A7:07CB 90            NOP         <-----------------------------+
  404. 78A7:07CC 90            NOP         <-----------------------------+
  405. 78A7:07CD 2E            CS:                        |
  406. 78A7:07CE 8E163E02      MOV     SS,[023E]          |
  407. 78A7:07D2 2E            CS:                        |
  408. 78A7:07D3 8B264002      MOV     SP,[0240]          |
  409. 78A7:07D7 1F            POP     DS                 |
  410. 78A7:07D8 59            POP     CX                 |
  411. 78A7:07D9 0C01          OR      AL,01   <----------+
  412. -------------------------------------------------------------------
  413.                 <> <> <> <> <> <> <> <> <> <> <>
  414.  
  415.  UNPROTECT FOR -SIGNMASTER
  416. FROM : THE A.S.P ; (Against Software Protection)
  417.  
  418. 1). FORMAT 1 SYSTEM DISK UNDER DOS 2.0 OR 2.1 OR 3.0
  419. 2). LABEL IT ACCORDING TO THE ORIGINAL 'SIGNMASTER'  SYSTEM DISKETTE
  420. 3). COPY THE (UNHIDDEN) FILES FROM THE ORIGINAL DISKETTE TO THE CORRESPONDING
  421.    2.X  OR 3.X FORMATTED DISKETTE
  422. 4). I WONT  TELL U HOW TO USE DEBUG OR  ANY 'PATCHER' PROGRAMS
  423.    ON THE BBS'S, I ASSUME U HAVE A BASIC UNDERSTANDING.
  424. 5). RENAME SIGN.EXE SIGN
  425. 6). DEBUG SIGN
  426. 7). D CS:99C
  427.      YOU SHOULD SEE 75 03 E9 09
  428.      E CS:99C 90 90 EB 1F
  429.      D CS:D407
  430.      YOU SHOULD SEE 5F
  431.      E CS:D407 CB
  432.      W
  433.      Q
  434. 8). RENAME SIGN SIGN.EXE
  435.  
  436. OTHER NOTES:
  437. -------------------------------------------------------------------------
  438.  
  439. 1). CHECKS FOR SPECIALLY FORMATTED TRACKS COMPLETELY REMOVED
  440.  
  441. 2). U MAY LOAD ALL THE FILES ON THE NEWLY FORMATTED AND UNPROTECTED
  442.    DISKETTE DIRECTLY TO HARD OR RAM DISK, IN ANY SUB-DIRECTORY U
  443.    SET UP
  444.  
  445. 3). SOMEONE WANTED TO KNOW WHY I USED UPPER CASE FOR EVERYTHING. FIRST
  446.    AFTER ABOUT 8 TO 20 HOURS OF STARING AT THE TUBE., I AM NOT ABOUT
  447.    TO SHIFT THE CHARACTERS, AND SECONDLY I AM SO EXCITED , AFTER DOING
  448.    SOMETHING THAT AT FIRST SEEMED IMPOSSIBLE, AND IN A HURRY TO GET IT OUT
  449.    ON A BBS, SO THAT U MAY USE THE NEWLY GLEAMED KNOWLEDGE.
  450.  
  451. This is the procedure for bypassing the copy protection scheme used by
  452. SIDEKICK,  version 1.00A.
  453.  
  454. Using DEBUG on SK.COM, NOP out the CALL 8780 at location 071A ----+
  455.                                                                   |
  456. Change the OR  AL,AL at 072D to  OR  AL,01 --------+              |
  457.                                                    |              |
  458. .....and that's it!                               |              |
  459.                                                    |              |
  460.                      (BEFORE ZAP)                  |              |
  461. 78A7:071A E86380        CALL    8780 <----------------------------+
  462. 78A7:071D 2E            CS:                        |              |
  463. 78A7:071E 8E163D02      MOV     SS,[023D]          |              |
  464. 78A7:0722 2E            CS:                        |              |
  465. 78A7:0723 8B263F02      MOV     SP,[023F]          |              |
  466. 78A7:0727 1F            POP     DS                 |              |
  467. 78A7:0728 59            POP     CX                 |              |
  468. 78A7:0729 880E1300      MOV     [0013],CL          |              |
  469. 78A7:072D 0AC0          OR      AL,AL   <----------+              |
  470.                                                    |              |
  471.                      (AFTER ZAP)                   |              |
  472. 78A7:071A 90            NOP         <-----------------------------+
  473. 78A7:071B 90            NOP         <-----------------------------+
  474. 78A7:071C 90            NOP         <-----------------------------+
  475. 78A7:071D 2E            CS:                        |
  476. 78A7:071E 8E163D02      MOV     SS,[023D]          |
  477. 78A7:0722 2E            CS:                        |
  478. 78A7:0723 8B263F02      MOV     SP,[023F]          |
  479. 78A7:0727 1F            POP     DS                 |
  480. 78A7:0728 59            POP     CX                 |
  481. 78A7:0729 880E1300      MOV     [0013],CL          |
  482. 78A7:072D 0C01          OR      AL,01   <----------+
  483.                 <> <> <> <> <> <> <> <> <> <> <>
  484.  
  485. What follows is an unprotect scheme for version 1.11C of Borland
  486. International's Sidekick.  The basic procedure is the same as
  487. that for version 1.1A with just location differences.  So the
  488. only credit I can take is for finding the new locations!  This is
  489. (of course), provided only for legal owners of Sidekick!!  Also,
  490. make sure you 'DEBUG' a copy NOT the original!
  491.         DEBUG SK.COM    <ENTER>
  492.         -U 801          <ENTER>
  493.         -E 801          <ENTER>
  494.         you will then see:
  495.         25E5:0801    E8.
  496.         90              <ENTER>
  497.         repeat for 802 and 803:
  498.         -E 802          <ENTER>
  499.         90              <ENTER>
  500.         -E 803          <ENTER>
  501.         90              <ENTER>
  502.         then:
  503.         -A 810          <ENTER>
  504.         OR AL,01        <ENTER>
  505.         <ENTER>
  506.         -U 801          <ENTER>
  507.         you should then see (among other things):
  508.         XXXX:801       90     NOP
  509.         XXXX:802       90     NOP
  510.         XXXX:803       90     NOP
  511.  
  512.         XXXX:810  0C01     OR     AL,01
  513.         if so:
  514.         -W              <ENTER>
  515.         -Q              <ENTER>
  516.         if not:
  517.         -Q              <ENTER>
  518.  
  519.             +++++++++++++++++++++++++++++++++++++++++++++++++++++
  520.  
  521.              For SKN.COM, SKM.COM and SKC.COM the unprotect is the same
  522.         but at the following locations:
  523.  
  524.              SK          SKN          SKM          SKC
  525.              ---         ---          ---          ---
  526.              801         7DF          76F          7BC
  527.              802         7E0          770          7BD
  528.              803         7E1          771          7BE
  529.              810         7EE          77E          7CB
  530.  
  531.         To unprotect SKC.COM you would 'DEBUG SKC.COM' and then replace
  532.         any occurence of '801' with '7BC'; '802' with '7BD' and so on.
  533.                               GOOD LUCK!
  534.                           * * * * * * * * * * * *
  535.                           * * * * * * * * * * * *
  536.  
  537.     This is an explanation of the internal workings of Print.Com, a file
  538.     included in DOS for the IBM PC and compatibles.  It explains how this
  539.     program fails to do its part to insure integrity of all registers.  For
  540.     this reason some trouble was being experienced while using both SideKick
  541.     and Print.
  542.  
  543. op
  544. The timer tick generates an interrupt 8 18.2 per second.  When SK
  545. is not active, this interrupt is handled by the Bios as follows:
  546.  
  547. It  pushes  all registers used by the routine (AX among  others.)
  548. It updates the system timer count.
  549. It updates the disk motor timer count.
  550. It generates an int 1C.
  551.  
  552. When  the spooler is active,  it has placed a vector at  int  1C,
  553. pointing  at  the  spooler's  code.   The  spooler  is  therefore
  554. activated in the middle of the int 8 handling.   The cause of the
  555. SK  received the int  8 and calls the bios int 8 routine to  make
  556. sure  that the timer tick is properly handles.   The bios  int  8
  557. me as above:
  558.  
  559. It pushes all registers used by the routine (AX among others).
  560. It updates the system timer count.
  561. It updates the disk motor timer count.
  562. It generates an int 10.
  563. SK  has replaced the vector that the spooler placed here  with  a
  564. IRET,  so  nothing happens.   This is because we cannot allow the
  565. timer tick to pass through to programs which use it,  for example
  566. to write on the screen.
  567. It generates an end-of-interrupt to the interrupt controler.
  568. It pops the registers that were pushed.
  569. It does an interrupt return.
  570.  
  571. Back in SK's int 8 routine we make a call to the address that was
  572. stored at int 10 when SK was first started.  In this way he still
  573. services any resident programs that were loaded before SK.   With
  574. the spooler active we therefore make a call to the spooler.
  575.  
  576. The  spooler  again corrupts the AX register because it  uses  it
  577. without saving it first.
  578. Back  in SK we have no way of restoring the original contents  of
  579. the  AX register because we did not save it (why  should  we,  we
  580. don't use it.)
  581.  
  582. In  short,  the root of the trouble is that the spooler  destroys
  583. the AX register.  The fact that the Bio's int 8 routine saves and
  584. stores it is pure coincidence.
  585.  
  586. I quote from the Technical Reference Manual,  Pages 2-5,  Section
  587. Interrupt Hex 1C-timer tick:
  588.  
  589. "It is the responsibility of the application to save and  restore
  590. all registers that will be modified."
  591.  
  592. Relying  on a version of the Bios which happens to save  register
  593. AX is bad programming practice.   However,  the guy who wrote the
  594. print  spooler did not rely on this because at another  point  in
  595. his  program  he  does correctly save AX.   Obviously  he  simply
  596. forgot and fortunately for him the Bios saved him.
  597.  
  598. The following patch will fix the problem:
  599.  
  600. SK.COM unprotected version change 7F8: 55 to 7F8: 50
  601. SK.COM unprotected version change 805: 5D to 805: 58
  602.  
  603. SK.COM protected version change 801: 55 to 801: 50
  604. SK.COM protected version change 80E: 5D to 80E: 58
  605.  
  606. Also on both above change 012C: 41 to 012C: 42
  607.  
  608. UNPROTECT IBM TIME MANAGER (80 Column Version) Version 1.00 -
  609.  
  610. 1. Have a formatted, blank disk ready if copying to a floppy. Hard
  611.    disk is OK, also.
  612.  
  613. 2. Startup DEBUG from drive A.  Just type  DEBUG  <enter>
  614.  
  615. 3. Place the TIME MANAGER program disk in drive A.
  616. 4. Type   L 600 0 A5 40  <enter>
  617. 5. Type   F 100,600 90   <enter>
  618. 6. Type   RCX            <enter>
  619. 7. Type   8000           <enter>
  620. 8. Place the formated, blank floppy in drive B
  621.  
  622. 9. Type   NTM.COM        <enter>
  623. 10. Type  W              <enter>
  624. 11. Type  Q              <enter>
  625.  
  626. That's it. You now have the 80-column version of Time Manager on the
  627. disk in Drive B. It is called TM.COM and can be started by simply
  628. typing TM.
  629.  
  630. BE AWARE!!! - the data diskette is non-dos and cannot be placed on a
  631. hard disk. Also, while the program itself can be loaded from any drive
  632. letter (A-Z), the data disk can only be on drives A or B.
  633. The data disk is not protected and may be copied with DISKCOPY.
  634.  
  635.  
  636. For the 40-column version, replace line4 with:
  637.  
  638. 4. Type   L 600 0 65 40  <enter>
  639.  
  640. All others steps are the same.
  641.  
  642. If you wish to have both a 40 and 80 column version, change line 9
  643. so that the name is descriptive of the version, i.e. NTM40.COM or
  644. NTM80.COM.
  645.  
  646.                             <-----<<END>>----->
  647.           ++++++++++++++++++++++++++++++++++++++++++++++++++++++
  648.           ++++++++++++++++++++++++++++++++++++++++++++++++++++++
  649. !
  650.  
  651.