[comp.sys.apple] Software de-protection using hard-reset

jac@paul.rutgers.edu (Jonathan A. Chandross) (02/03/89)

AWCTTYPA@UIAMVS.BITNET ("David A. Lyons") writes:
>It isn't necessarily as simple as "if it loads into memory, it can
>be copied," though.  What if the program stores important parts of
>itself (tables of addresses to important subroutines, which would
>always be called through the tables) in areas of memory that will be
>overwritten when you go into the monitor?  Like the text screen at
>$400-7FF, the early part of the keyboard buffer ($200+), and certain
>zero-page locations ($00xx).

Well, we had a board for the ][+ that would do 2 things.  The first was
an absolute reset like an integer card would.  This is not useful if the
program is storing infomation in the keyboard buffer, text screen, etc.
The second mode would cause locations x0-x7ff to be moved to address x2000
upon reset.

So all you do is hit reset (with move disabled) and see if you need the
text screen, etc.  If you do, reboot and hit reset with move enabled.  Save
the various pieces, use a loader to replace them in the proper places in
memory, and Voila.  Unprotected software.


Jonathan A. Chandross
ARPA: jac@paul.rutgers.edu
UUCP: rutgers!jac@paul.rutgers.edu