[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Possibly the most copy protected Apple program I've seen
Hi,
Just thought I'd share my experiences with a very heavily copy protected
software and see if anybody has any thoughts as to what's really going on
under the hood. Unless there's interest, I'll not name the actual program,
especially since I have successfully cracked it but for an unrecoverable
disk error on my only copy of the program. I'll just say that it is a
program designed to be used with the Echo speech synthesizer card.
The weird thing about this program is that normal DOS 3.3 can't read the
disk. But, the custom DOS on the disk *can* read normal DOS 3.3 disks.
This is actually important for one part of the program in question.
Now, for some clever tricks this custom DOS has up its sleeve. First of
all, hitting a reset causes about a half second delay (maybe it's erasing
something in memory?) then a reboot. That's probably pretty normal. But
what's stranger is that when the program exits, or even if there's an error
loading the program, and you're left sitting at the Applesoft prompt, any
command typed, or even just a blank line, will net the same result. A
slight delay, then a reboot! So you can't load/list/save/etc.
The way I cracked this is quite interesting. I had a normal DOS disk set up
to run FID at startup. Now remember that this custom DOS can read and write
normal DOS disks as well. So I booted up the custom DOS, then just as the
head was traveling to track seventeen so DOS could read the catalog track, I
yank open the drive door, pull out the disk then quickly, while the head is
recalibrating after not being able to read from an open drive, put in the
normal FID disk and close the door! Voila! Now Fid's running and I can
just copy the files to a standard DOS disk.
Upon further examination, I found that the actual Applesoft programs also
have a few tricks up their sleeves. First of all, as each program starts it
messes up the reset vector so reset causes a reboot. Also, should any
program terminate in error, it clears itself from memory, so a 'list' gets
you nothing!
Jayson