home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Various Unprotection Examples
/
unprotect.zip
/
unprotect
/
UNBASIC
/
BASIC.NTE
next >
Wrap
Text File
|
1988-10-20
|
4KB
|
106 lines
How to use pepores to unprotect basic files:
You have to realize that how basic protects programs is
by marking them with a byte that has hex value FE, as
opposed to value FF for regular files (and FD hex for
bload files). For files marked with the FE byte, basica
(or GW-basic) then scrambles the file.
All of the "unprotect" programs work by first loading
the basic file into basica/GW-basic. Once the file
is loaded, it is unscrambled. They then change the
special byte from FE to FF, so that basica sees the
program as a regular program. Then the the basica
file is saved to disk in its unscrambled form.
There are two reasons why this unprotect scheme can
fail: First, in successive versions of basica/GW-basic
precautions were added to keep the user (i.e., you)
from changing that "protection byte" from within
basica. Second, the location of the "protection
byte" is changed in some versions of basica. This
last may be a feature unique to AT&T computers,
because that's all I've tested. At any rate, I
found out some time ago that the old methods of
unprotecting basica files won't work with the
PC6300 & it's GW-basic.
So now I'm going to tell you how to use the enclosed
program, pepores.com to unprotect your GW-basic files.
I've used this method with 100% success on the AT&T
6300 with DOS 3.1, and believe it will work on any
other IBM compatible.
1) First run the program pepores by type "pepores" at
DOS command line (note that this is not a basic
program). "pepores" is now memory resident until
you reboot your machine. This is the program we
will use to by-pass all of GW-basic's protection
schemes.
2) Second, make a simple basic file (say, "10 print
"x" and 20 end"), and save it in two versions:
protected and unprotected. We are going to compare
these files using prepores to find the "protect byte".
3) Take the protected file you just made and load it
into basic. Now tap the alt key three times quickly;
prepores should pop up on your screen. Press the F5
function key (sets the segment viewed to DS).
4) Press the F1 function key and enter FE <return>.
The program will search for FE in memory. Write
the location down (this is the pair of numbers in
the top left corner of the screen: 6f5d:0599, for
example).
5) Continue pressing F1 and then <return> to repeat
searching for FE, and writing down the addresses.
Do this until the second number of the address (the
0599 in the example above) is greater than 1000.
6) At this point, press escape to leave pepores,
then type "new" to empty out basic, and finally
load in the unprotected test program.
7) Hit alt three times to bring back pepores. Then
repeat step 4) and 5) above, only now searching for
FF instead of FE. What you are now looking for
is a location where this time (the unprotected
case) you have the value FF, but the same location
(the addresses you wrote down) in the protected case
was value FE. This address should be in the 0400 to
0700 range. Write it down and circle it.
8) O.k., one last time.... Press escape to get out
of pepores, then type "new" to clear basic. Now load
any protected program that you want to unprotect.
9) Again hit alt three times to bring up pepores, then
hit F5. Now you must use the left/right cursor keys
to move the little arrow in the top left corner of
the screen. You must type in the hex address that
you previously circled.
10) You should now be at the location of the "protect
byte", which should be value FE (if all was done
correctly). Now press the function key F9 (insert hex)
and type FF <return>. The protection byte is changed
from FE to FF.
11) Finally, you can use escape to return to basic, then
save the file (unprotected). And that's it.
Let me now apologize for the complexity of this solution.
I have you do it this way because this method is
completely flexible; I don't have to worry about any
peculiarities with your system. For example, the
location of the "protection byte" on my 6300 was 0599, but
in other places I have seen people talk about 0464 and
several othe addresses. Using my approach, you will learn
the correct address for *you*. Think of it this way:
you're doing some real hacking! (On a very small scale.)
Good luck!
Ben Bednarz, 1988