reverse engineering is your friend. i've modded all sorts of stuff that never intended it... Full Tilt Poker back in the day, MechWarrior Online, Ultima Online, etc. Learning how to hook into a program's functions and extract real-time data without destroying the stack, properly calling game functions with your own arguments, and translating your patches to new client versions is all pretty interesting and gratifying IMO.