Basically, a detour is used to intercept a function. It takes the first instructions of the target you are detouring, and replaces it with a jmp to your function. The original function is saved, and then executed after your function has been executed. This is known as a trampoline.