| |
Cobrakid
Registered: Oct 2011 Posts: 23 |
Ghouls Assembly Course
Ghoul's Maskinkode Kursus (danish assembly course) has some kind of copy protection on disk 4 and 5 which unfortunately doesn't work with emulators (at least not the two I have tried out).
I have asked the author if he has a non-protected edition but he hasn't. A lot of us don't have a real C64 any longer and I would really like to view the whole course so if anyone can crack/remove the protection that would be really nice. I am also very positive that the author doesn't mind after all these years :-)
// COBRAKiD |
|
| |
j0x
Registered: Mar 2004 Posts: 215 |
Done |
| |
Cobrakid
Registered: Oct 2011 Posts: 23 |
That was indeed fast :-) I can now access the gold nuggets and I am really happy about that. It is really good for us that doesn't know too much about assembler programming as it is explained in a very easy way to understand (well, if you can read danish at least).
I still need to put in the password though - would it be anyway possible to remove that (or just accept anything) as it takes unnecessary time to deal with?
But nicely done.
Thanks a lot,
// COBRAKiD |
| |
Skate
Registered: Jul 2003 Posts: 494 |
good job j0x. |
| |
j0x
Registered: Mar 2004 Posts: 215 |
My laziness and limited spare time prevented me from removing the password-checks. Now that the disk-checks are gone, you can make password-free versions for your own use using an emulated freezer-cartridge, such as Action Replay. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Guess I should take a look at this and see if I can learn anything. ;) |
| |
FATFrost Account closed
Registered: Sep 2003 Posts: 211 |
Would it be hard to translate into english at all? |
| |
TWW
Registered: Jul 2009 Posts: 545 |
Probably not. Danish is very simmilar to norwegian in written form. The pronounsation however is very different.
I can take a look if I get some time. I guess Codebase would be the right place for it!? |
| |
Cobrakid
Registered: Oct 2011 Posts: 23 |
If anyone would provide me with the text/lessons/assembler files I could do a translation too (I am a dane).
I would love to see this translated as I really think it is good (at least for novices like me). |
| |
FATFrost Account closed
Registered: Sep 2003 Posts: 211 |
Thanks, i remember cyberbrain telling me about this course back in 94... |
| |
Ghoul
Registered: Aug 2004 Posts: 4 |
Hehe, j0x, I like the fact that you cracked my awesome über password protection in a matter of hours. :) As you state elsewhere, the program expects to find a disk error on track 36. Back in the days, no copy program that I could find was able to properly copy that error and so it seemed a reasonable protection mechanism - unless of course you completely bypass the check by JMPing to the routine that handles password input. :)
By the way, the program does not hold a copy of the correct password in memory. Nor does it attempt to compare the user-input text to anything. It merely uses a "garbage in, garbage out" routine (EOR). |
| |
j0x
Registered: Mar 2004 Posts: 215 |
Heh, no, I didn't crack your password algorithm, although, as far as I could see, it was only a one-pass EOR with a 16-byte key :)
Given that many text screens contain a large amount of spaces, the key is actually repeated many times in the program, albeit in a form where it's EORed with $20.
BTW, did you at any point consider that perhaps your protection was just a tiny little bit over the top? :D
|
| |
Mason
Registered: Dec 2001 Posts: 461 |
Quote: Hehe, j0x, I like the fact that you cracked my awesome über password protection in a matter of hours. :) As you state elsewhere, the program expects to find a disk error on track 36. Back in the days, no copy program that I could find was able to properly copy that error and so it seemed a reasonable protection mechanism - unless of course you completely bypass the check by JMPing to the routine that handles password input. :)
By the way, the program does not hold a copy of the correct password in memory. Nor does it attempt to compare the user-input text to anything. It merely uses a "garbage in, garbage out" routine (EOR).
Hi Ghoul... Nice to see you here |
| |
Ghoul
Registered: Aug 2004 Posts: 4 |
Over the top? Nah. :) The EOR part was simple to imlement. However, since I didn't know jack shit about using the disk drive from assembler language, I had to resort to BASIC to 1) create the error on track 36 and 2) check for the presence of that error. I then used a compiler on that, which added a level of obfuscation although easy to bypass, as you have demonstrated.
In any case I just wanted to protect my work a little bit, since I only charged the equivalent of 9 to 10 USD. And you have no idea how many hours went by doing text, examples, exercises etc. Despite the hard work I still had fun doing it, though.
Hi Mason. I remember you from old days. :) |
| |
j0x
Registered: Mar 2004 Posts: 215 |
Well, the compiled basic was probably slightly harder to crack than a straight-forward machine code implementation would have been.
I can imagine how many hours you spent on it! Do you remember how many copies you sold in total?
|
| |
Ghoul
Registered: Aug 2004 Posts: 4 |
Far too few. Less than 50. |