Wow you guys in this thread are all idiots (and pretty much this whole crossfire section...) The OP asked for a tutorial on hooking (which I assume he wanted a tutorial more geared towards actually hooking CF) but you guys are like HERPDERP LEARN DAT CPRUSPRUS OR DO DAT CREATETHREAD.
I recommend you to download a d3d test enviroment and OllyDbg.
Here is the shittiest test environment ever but at least it shows you on the screen the address to Present/Endscene, etc. You can also just get the address through the vtable.
You need to attach Olly to the d3d test enviroment and look up the address in d3d9.dll. At this point, just google 'midfunction hook' and look up some of the results on UC (dumb mpgh censors the full site). Look at the examples they have posted and try to follow it in Olly to see actually how it is done. From there you can make your own . You also cannot use a jmp detour. First hook the test environment and then inject into crossfire.
I recommend you to download a d3d test enviroment and OllyDbg.
Here is the shittiest test environment ever but at least it shows you on the screen the address to Present/Endscene, etc. You can also just get the address through the vtable.
You need to attach Olly to the d3d test enviroment and look up the address in d3d9.dll. At this point, just google 'midfunction hook' and look up some of the results on UC (dumb mpgh censors the full site). Look at the examples they have posted and try to follow it in Olly to see actually how it is done. From there you can make your own . You also cannot use a jmp detour. First hook the test environment and then inject into crossfire.

