This tool allows you to generate compile time code to runtime inject C++ classes.
It works with both virtual methods and non-virtual methods. (Also proxying inherited classes.)
In order to proxy non virtual methods, the tool generate a trampoline that overrides the methods and forward the calls to the injected class, this need to decode assembly code to replace relative calls/jumps/references.
Project is only compatible with x86_64 linux systems.
Note that proxy works only when functions are not inlined by the compiler.
Usage: injector class_name#header_file [class_name#header_file ...] > output.hpp