Take for example WoW. It obviously has to send data between the client and the server, but how does it make it so it's hard (impossible?) for someone to just... make another application to send that data saying "I've just picked up thousands of gold"?
Anyone point me in the right direction? I don't mind researching, but I don't know where to start looking.