Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!decvax!wivax!linus!philabs!seismo!hao!hplabs!sri-unix!COLE@USC-ISIB
From: COLE%USC-ISIB@sri-unix.UUCP
Newsgroups: net.micro.pc
Subject: Re: Norton Book & Protected BASIC
Message-ID: <1587@sri-arpa.UUCP>
Date: Wed, 25-May-83 11:11:00 EDT
Article-I.D.: sri-arpa.1587
Posted: Wed May 25 11:11:00 1983
Date-Received: Fri, 3-Jun-83 05:59:09 EDT
Lines: 26

From:  Randy Cole 

The method Bill Brackenridge mentioned is by far the easiest way of
unprotecting a BASIC program.  There is another way to do it, which
can be used if you can't find the magic protection flag byte.

First use DEBUG to load and run BASIC.COM or BASICA.COM (I have
always used BASICA, but I don't think it matters).  Once BASIC is
running under DEBUG, use it to load in your protected program.  Then
exit BASIC using the SYSTEM command, which will put you back in
DEBUG.  If you look around memory using DEBUG, you will be able to
find the unencrypted, tokenized BASIC program.  You can tell when
you find it by the comments or strings.  Then you can use DEBUG to
open an output file and write that portion of memory to a file.

"Protected" BASIC programs appear to be encrypted by some table or
semi-random function of each byte's address or location in the file.
I say semi-random because the encryption repeats with a period of
a few hundred bytes or so, if I remember correctly.  Since you can
write a BASIC program with anything you want in it, use BASIC to
encrypt it, and then look at the results, it should be a possible
to build a decryption program to read files, decrypt them, and
write them back.

Randy Cole
-------