An easy CALL Hook just sets a CALL (mostly opcode 0xE8). This sort of CALLs takes 5 Bytes.
To set a call hook, you have to make sure that you overwrite full asm-commands, else the program will crash after calling a return (RETN).
If your hook doesn't overwrite full asm-commands, set a NOP (0x90) at every BYTE of the rest of the command.
To set the CALL destination, you have to subtract the location where your hook is + 5 (length of a call) from your function, which you want to get called by the hook (HookAt + 1 = YourFunction - (HookAt + 5) <- This is just a demonstration, it won't work).