Learn how to perform an internal trampoline hook to redirect flow from one function to another. Simple code, fully explained. A detour can be placed anywhere and all it does is jump. In my mind, hooking better describes the art of hooking an entire function and directing it to your own function. What I have just described is what I think is best referred to as a trampoline hook. First off, a trampoline hook is typically internal. You inject your DLL which contains a function with the same declaration as the function you're hooking. It has the same arguments, return type and calling convention. In this function you have your own code you want to execute and at the end of your function, you call the original function. But if you execute the original function, it just jumps to your own function again, so you get an infinite loop from hell. Thus, the trampoline hook was born.