Actually I didn't really define a hook properly, you could even hook functions without intercepting it. You could change the address that's being called to your own, and return the original, the end result would make it seem like you intercepted the function but you actually didn't.
I'm not really good at explaining these kinds of things, I'll leave this to the pros. |: