https://martypc.blogspot.com/2024/08/pc-floppy-copy-protection-formaster.html
This is Part 1 of a series of articles investigating various PC floppy protections, as I get them working in MartyPC. It assumes you have a familiarity with the structure of a PC floppy disk and the basic operation of a PC floppy drive.
...
Formaster called their copy protection technology "Copy-Lock," a name which, unfortunately, several other producers of copy-protection technology used for entirely unrelated methods.
The Formaster flavor of Copy-Lock was not used exclusively on PC - the Series One supported many other different computers such as the Apple II and Commodore 64. Copy protection schemes on those platforms could be much more advanced. This article will specifically look at Copy-Lock as it appeared on the IBM PC platform.
(Score: 4, Funny) by Rosco P. Coltrane on Friday August 30 2024, @02:33AM (4 children)
Next up: copy-protecting punch card. Stay tuned!
(Only joking: I love articles exploring old tech 🙂)
(Score: 4, Interesting) by Mojibake Tengu on Friday August 30 2024, @11:21AM (3 children)
That's easy. If you punch a card as 'all holes', you get a fragile mesh which is unable to pass a reader physically without immediate self-destruction. It is impossible to copy that.
So, with 'almost all holes' you may get some fancy custom encoding of data which cannot be read by traditional machines, you need a human to interpret it.
Or an AI with optical scanner of post-modern times...
Rust programming language offends both my Intelligence and my Spirit.
(Score: 5, Informative) by Rosco P. Coltrane on Friday August 30 2024, @02:41PM (2 children)
It will survive one row of "all holes" quite happily though.
How do I know that? Here's a bit of trivia: do you know why DEL is at the end of the ASCII table (at number 127) while all the other non-printables are below 32?
Because that's the character you used to scratch a mistake in a punch card: just punch all the holes and start over at the next row.
I can't count the number of times I angrily punched all the holes in a row...
(Score: 5, Funny) by DannyB on Friday August 30 2024, @03:03PM
I just typed carefully on the 029 and 026 keypunches. Unlike a CRT terminal you couldn't backspace a mistake and continue.
The number of times you angrily punched all the holes must belong to the set of countable infinities. For example, a bag with infinitely many apples would be a countable infinity because (given an infinite amount of time) you can label the apples 1, 2, 3, etc.
The server will be down for replacement of vacuum tubes, belts, worn parts and lubrication of gears and bearings.
(Score: 3, Interesting) by hendrikboom on Friday August 30 2024, @04:51PM
Yes, that's correct except the all-holes code was common on paper tape, not punched cards.
Each hole was a binary one, so all holes on seven-track tape became 127.
I don't remember any such convention on Hollerith punched cards, which used entirely different coding.
There were smaller punched cards on Burroughs machines, with smaller holes, which may have been
coded in binary. I don't remember the details.
And CDC used the same large format of punched cards as IBM, with similar character coding.
But they also has a convention of column binary that could be used to write out their 60-bit
binary words as five twelve-position columns each.
(Score: 5, Interesting) by sjames on Friday August 30 2024, @04:05AM (5 children)
Takes me back to the days when cracking the copy prevention was at least as much fun as the game itself. It was a puzzle to be solved only the puzzle maker really didn't want you to solve it.
The ultimate technique for that was boot code tracing. Modify the boot code itself to NOT check for the deliberate errors on the disk (often just a few well placed NOPs). Or sometimes just emulate the errors (TSR intercept of BIOS). In other cases, write a new loader that just sticks the right things in the right places and jumps into the program.
To put it all in perspective, much of that happened before the legality of copyright on object code was settled in the courts.
(Score: 4, Interesting) by shrewdsheep on Friday August 30 2024, @10:23AM (1 child)
Tracing is the way to go. Still, you cannot beat the copy protection, if done correctly. I did a bit of, let's call it, "prolonging the evaluation period" on the NeXT computer for which software was very expensive. Usually software was protected by a registration code. This seems to be trivial to overcome, but more sophisticated schemes had checks much later in the program. Mathematica was one example, where the kernel would throw errors much later in the execution. Basically, you are never sure when you can stop.
(Score: 2) by sjames on Saturday August 31 2024, @12:20AM
It's really a matter of how much effort vs. how expensive combined with factors of risk and reputation. Teens with few responsibilities vs. game is a much different proposition than professional (or student) vs Mathematica.
As I said, the copyrightability of object code wasn't even well settled yet when I did some game cracking.
(Score: 2, Interesting) by anubi on Friday August 30 2024, @11:58AM (2 children)
Ahhh!
The days of +Fravia, +ORC, +Saltine ( Good Cracker ), the +HCU, and all those guys who maintained all those warez and cracks channels...
It's the days of SoftIce, WDasm32, Sourcer,
IDA, and several other debugging programs I found to be incredibly useful for finding out why programs were having unexplained anomalies that had nothing to do with copy protection. Like why control loops would occasionally go awry for no apparent reason. These were programs that seemed to run just fine, throw no errors, but got screwed up on timing. Usually race conditions, metastability, or some interrupt that did us in. When digital control systems were were married to inertia and resonance, sometimes the most interesting things occasionally happened. A good bout of unexplained instability often made for weeks of interesting discussions among us engineers. Especially those of us making the transition from an analog world to a digital one.
These days, we have most of that understood and we can usually run canned proven software, even though we would much rather take the time to test thoroughly. But that takes time and sharpened pencils have already trimmed anything that didn't have to be done, kinda like a Muntz TV. When it comes to Engineering, often the only passing score is 100%. The thing either works, or it doesn't.
"Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]
(Score: 2) by sjames on Saturday August 31 2024, @12:44AM (1 child)
It wouldn't surprise me at all if a lot of the former game hackers ended up on dev teams for debuggers. I used Sourcer a few times.
(Score: 1, Interesting) by Anonymous Coward on Saturday August 31 2024, @02:22AM
A lot of us ended up working for the small guy again, as the larger guys had erected so many barriers to entry that the old fogies who had actually done these things would be considered "overqualified" or posed an existential threat to the existing political base.
(Score: 4, Interesting) by stormwyrm on Friday August 30 2024, @05:43AM (2 children)
I used to use the DOS DEBUG.COM utility to trace through copy-protected programs, and cracked the copy protection by simply patching the code to jump over the copy protection checks entirely and just get on with the program. The one I remember best was with Ultima III: Exodus. The main executable as I recall actually loaded some of its own code from one of the funny sectors that constituted its copy protection, so I had to add that code into the patch itself. This proved to be easy enough since the main executable was a COM, not an EXE, so the debug utility could just write out the memory image as it existed after loading the code into a new COM file, which then always worked after fudging the jumps. It might have been a bit more complicated if it was an EXE but probably not that much harder.
Numquam ponenda est pluralitas sine necessitate.
(Score: 4, Interesting) by ledow on Friday August 30 2024, @07:34AM (1 child)
I did this as a kid - Desert Strike on PC was the first game where I defeated the CD checks using a copy of DEBUG and Ralf Brown's Interrupt List.
As a first foray into DOS, x86 assembly, etc. it was rather simple but long-winded to do, and with such primitive tools involved a deep understanding of what was going on to trace all the appropriate interrupt calls and checks.
All you needed to do in that case was patch out the interrupts that tried to interface with the CD driver to check if it was actually a CD and/or fake their response to be what you wanted.
If I remember, almost identical on Jungle Strike too. And I had a go at Worms at one point but that was just easier to use a "fake" CD TSR that used the folders on your hard drive to pretend to be a CD drive.
(Score: 3, Interesting) by sjames on Saturday August 31 2024, @12:39AM
I started with Apple ][ at school. There was one machine where someone (identity unknown) swapped out a ROM with one where the reset vector pointed to the ML monitor. Boot the game, hit reset, and look at the now loaded image in RAM (reset didn't clear or corrupt RAM in the Apple).
By the time I got to the PC, I wrote a disk monitor that recorded and optionally repeated any errors returned while booting. As a bonus, it tweaked the CGA timing to get a 26th line on the screen where it displayed status info.
(Score: 4, Informative) by SomeGuy on Friday August 30 2024, @11:59AM (1 child)
Just a reminder that copy protection is still around. If you don't believe me, try not paying for your Microsoft Office 365 ball-and-chain fees and see what happens. Don't even get me started on locked down toy smartphones.
(Score: 2) by Reziac on Saturday August 31 2024, @04:53AM
What does 365 do if you don't pay up? I don't use it, so no idea.
Tho I have a Lenovo workstation board that for some unknown reason refuses to validate the Win7 (embedded license) it shipped with, validates Win10 just fine, and magically grew Office365 with no strings attached. [scratching head] I did no more than look at it, but I will say it appears better than Office2016, which didn't even achieve Suck.
With ya on cellphones. Excuse me, I paid for the fucking thing, it should obey *me*.
And there is no Alkibiades to come back and save us from ourselves.
(Score: 5, Interesting) by anotherblackhat on Friday August 30 2024, @02:33PM
I found that the best form of copy protection was unintentional.
Things like figuring out that a Formaster could reliably write an entire track and that let you remove inter-sector gaps and squeeze in more data.
Wasn't done to be copy protection, it was done to put more data on a single floppy, but as a side effect, you couldn't create a copy without essentially having a Formaster machine.
Wondermat didn't exist because of copy protection, it existed because of the pricing policies of the duplicators.