While looking for a solution to this keygen thingy, I started a thread on Joels on Software. One guy named Rui came out with a really smart concept, so smart and simple that we didn’t think of it first (here) and I tell my ideas about the benefits of such approach here. Then conversation goes on, I get moved and can’t help showing our love to our community: here. Of course I had to explain the concept using some capitalistic arguments, but I hope that the “love” comes out of my post . Well, before going further, please have a look at our previous posts on piracy here and here – just want to make sure that we absolutely don’t have bad feelings (nor we are frightened!) by pirates in any way 🙂
The previous situation:
Our previous serials looked like this: 1-23T02-123456-7-890. Everything apart from the “T02” was generated based on purchase reference number. The issue with that Tabbles was reading the whole serial at once, and since we used no trick/obfuscation at all, we knew that it would have been a trivial job for any hacker to reverse-engineer the code and write a keygen…
Our current approach:
Our current serial looks like this: 1-T02-123456-1-111122233334444555566667777888899990000. The main difference is that now Tabbles is reading only a part of it (that is: 1-T02-123456-1-1111) and the logic to read the rest of the serial is not in the code (it was commented out at compiling). Therefore Tabbles will accept a serial number looking like 1-T02-123456-1-111122233334444555566667777888899990000 but will only take into account the first part (1-T02-123456-1-1111) and ignore the following part (22233334444555566667777888899990000).
So here is the trick: assuming that a keygen can only be written by reverse engineering the functions that read the serial inside the app, the first keygen that will developed will only be able to generate the first part of the serial (1-T02-123456-1-1111) and it may as well append some randomly generated numbers afterwards – the current version of Tabbles would work just fine with it. Then, the next day we’d reply by releasing a new version of Tabbles that reads also another little chunk of the serial (say the “2222”) making the previous keygen useless with the current version…
peace and love,