Deviare-InProc (Nkt) has nice things like "launch an .exe with injected DLL" or "load DLL remotely in hooked process", but PolyHook does virtual function detour/fp swap/tp swap, and we'll need that for Direct3D.
Both Deviare-InProc and PolyHook use a disassembler to make sure the hook code wouldn't overwrite something after the function boundary - OBS doesn't seem to.
OBS also uses separate executables for getting graphics offsets, and injecting a dll into another process
Deviare-InProc (Nkt) has nice things like "launch an .exe with injected DLL" or "load DLL remotely in hooked process", but PolyHook does virtual function detour/fp swap/tp swap, and we'll need that for Direct3D.
see
Both Deviare-InProc and PolyHook use a disassembler to make sure the hook code wouldn't overwrite something after the function boundary - OBS doesn't seem to.
OBS also uses separate executables for getting graphics offsets, and injecting a dll into another process