1. Launch the app.
2. Trigger the "not registered" screen.
3. Search for the string in the binary.
4. Search for code that references the location of the string and squint hard until you spot the "check if CD-key is valid" section.
5. Patch the final opcode from "jnz" to "jz". If you felt fancy, reverse engineer the checking algorithm to create a keygen instead of a patch.
Anticracking methods became mainstream in the late 90s, but they weren't very sophisticated and most amounted to obfuscation.
Long live +ORC, +Fravia and CracksLatinos.
Switching 0x74 to 0x75 and vise versa lead to me ordering the free Intel books and diving into assembly and osdev for a while. There was something zen-like wading through disassembled code with a complete beginner mind and looking for patterns. This and reading Phrack around the "Smashing the Stack for Fun and Profit" times are probably my favorite memories related to computing because I only had a very vague understanding of what was going on mixed with a sense of "wait you can do this" and a lack of readily available information.
For a few hours, I was a teenage god among men.
> Later, the apps that would clone a USB dongle came along, and one software company that used USB dongles actually advised using this tool when we started running their software on Blade servers that did not support adding 24 USB devices.
That's a good one!
The sentence "This created an only-too-familiar situation where illegitimate users enjoyed a better experience than paying customers." is a direct reference to these system which annoyed people who actually paid for their game!
I have heard of several cases where Siemens technicians and support staff would use a well-known "crack" (actually more of a keygen combined with license file manager) or guide customers how to obtain and use it...
Remember, legally (usually), the really important part is the proof of contract and payment, not exact way the software was activated