3 ms·
When I was in high school, I used similar techniques to hack PalmPilot shareware. I had taught myself Z80 and 68k assembly starting as a middle schooler to prog
by acjohnson55 14y ago
When I was in high school, I used similar techniques to hack PalmPilot shareware. I had taught myself Z80 and 68k assembly starting as a middle schooler to program my TI-83 (and later 89) graphing calculator.
I knew from experience that most responses to user input and state ultimately hinged on a single comparison instruction. For most shareware, there could be numerous checks that change the behavior of the code depending on whether it's registered or not, but the state of registration itself usually came down to a single flag stored someplace. Sometimes, developers would really obscure how this state was stored, but often, the weakpoint is at the point of registration. If you simple invert the comparison that determines if the registration code is correct, you can invert the registration approval/rejection process.
Using a disassembler, I isolated exactly where the comparison point was. Usually, this could be done by searching for code references to the success and failure screen or dialogs, and working backwards. Very often, it was as simple as using an onboard hex editor to replace a "branch if equal" opcode with a "branch if not equal". Then as long as you don't accidentally enter a correct code, you're in!
There are far more sophisticated registration schemes used back then and especially today, which require far more complicated methods to circumvent.
I did all this for two reasons. First was the fun/puzzle of it. Second was the fact that PalmPilot apps were often priced for business people, and relatively simple software would sell for $20-50; way more than my high school allowance allowed me to afford. I never did become a contributor to the whole crackz scene though. In the modern app world, the going price is like $2-5, making things way more affordable.