Just letting all of you know. Like Hamut said... It is very hard to fully protect a program from being cracked... almost impossible. If a hacker is smart enough, he can do anything he wants. I paid for a Glider key a LONG time ago and was very satisfied with it but I did not feel like paying for the elite subscription so I simply preformed a crack (which no I will not release because I respect merc for making a decent bot). As a developer, you have to deal with this kind of thing from time to time.
One practical way to deal with this would be to have the administrator of the server simply create their own little keygen, and manually add them to the server... Then the program sends a request to the server (with the time and date so the packets are dynamic), and recieves a packet which is dynamic as well. Then the server would send more packets IF it was correct information (this is why I have not been able to crack Innerspace) which does some intricate things to the client and accepts it.
This of course is not perfect, but it is VERY annoying to any cracker. Innerspace basicly uses this same method that I described and it works pretty decently. This however can be bypassed if there is, for example, a simple jump which interprets the incoming data or the data is stored in a register which can be breakpointed and edited. There is NO flawless anti-crack/hack.
P.S. To Hamut/Merc... No I do not even need ANY keys to use glider so even if I got banned for saying that I have cracked it... it would not matter too much. Not to mention I quit WoW =P I'm waiting to see if you guys create a bot for another game as said you guys would. /cough Age of Conan /cough