Author Topic: Copy protecting your GLBasic game with a serial number  (Read 1711 times)

Offline FutureCow

  • HelpEditor
  • Prof. Inline
  • ******
  • Posts: 680
    • View Profile
Any takers as to how you'd "copy protect" your game, giving people who pay for it a serial number to "register" their game?

You'd obviously need some
* Program to generate valid serial numbers for your game
* Something in your game to check that the serial number that has been input is valid
* The serial number would need to be stored somewhere in your program or in a separate "registration" file (though this would make pirating easy)

Thoughts?

(Incidently, I don't have a game ready to sell, I'm just trying to be forward thinking  in case I ever do a good enough game =D )

MrTAToad

  • Guest
At my (ex) work, a serial number was calculated from various bits of hardware including the serial number and drive the program was held on (in the Windows version, it use the UNC path).  All this was used to calculate a hexadecimal number which the user was presented with - the idea being they had to phone us up and request a "corresponding code" which they entered in (this code contained information about the maximum number of users and how long the program should run for.  It also included a CRC check).  When I did the Windows version, I allowed them to send the code in an email.

The hex value was calculated using a lot of XOR's and ANDs.

When decoded the various numbers were checked - it was then easy to check for invalid values (ie invalid number of users, length the program can run for etc etc).

This file was stored in a hidden file in the same place as the main executable, and was checked each time a different module was run.

Its a bit generalistic I'm afraid, but it might give you a few ideas :)


« Last Edit: 2009-Feb-13 by MrTAToad »

Offline Kitty Hello

  • code monkey
  • Administrator
  • Prof. Inline
  • *******
  • Posts: 10816
  • here on my island the sea says 'hello'
    • View Profile
    • http://www.glbasic.com
PLATFORMINFO$("ID") is worth a look, too