Classes | |
| struct | UserCallInfo |
Enumerations | |
| enum class | UserRegister : uint64_t { None , EAX , ECX , EDX , EBX , ESP , EBP , ESI , EDI , ST0 , ST1 , ST2 , ST3 , ST4 , ST5 , ST6 , ST7 , XMM0 , XMM1 , XMM2 , XMM3 , XMM4 , XMM5 , XMM6 , XMM7 , Count } |
| enum class | Register : uint64_t { None , AL = UserRegister::EAX , AX = UserRegister::EAX , EAX = UserRegister::EAX , CL = UserRegister::ECX , CX = UserRegister::ECX , ECX = UserRegister::ECX , DL = UserRegister::EDX , DX = UserRegister::EDX , EDX = UserRegister::EDX , BL = UserRegister::EBX , BX = UserRegister::EBX , EBX = UserRegister::EBX , SPL = UserRegister::ESP , SP = UserRegister::ESP , ESP = UserRegister::ESP , BPL = UserRegister::EBP , BP = UserRegister::EBP , EBP = UserRegister::EBP , SIL = UserRegister::ESI , SI = UserRegister::ESI , ESI = UserRegister::ESI , DIL = UserRegister::EDI , DI = UserRegister::EDI , EDI = UserRegister::EDI , ST0 = UserRegister::ST0 , ST1 = UserRegister::ST1 , ST2 = UserRegister::ST2 , ST3 = UserRegister::ST3 , ST4 = UserRegister::ST4 , ST5 = UserRegister::ST5 , ST6 = UserRegister::ST6 , ST7 = UserRegister::ST7 , XMM0 = UserRegister::XMM0 , XMM1 = UserRegister::XMM1 , XMM2 = UserRegister::XMM2 , XMM3 = UserRegister::XMM3 , XMM4 = UserRegister::XMM4 , XMM5 = UserRegister::XMM5 , XMM6 = UserRegister::XMM6 , XMM7 = UserRegister::XMM7 , Count } |
| enum class | UserRegisterFamily : uint64_t { None , GPR = UserRegister::EAX , FPU = UserRegister::ST0 , SSE = UserRegister::XMM0 } |
Functions | |
| void * | GetPostHookAddress (void *in_pHookStart) |
| UserRegisterFamily | GetRegisterFamily (UserRegister in_register) |
| int | GetRegisterID (UserRegister in_register) |
| void * | EmitUserTrampoline (const UserCallInfo &in_rInfo, const size_t in_address, bool in_isToOriginal=false) |
|
strong |
|
strong |
Registers used for __usercall/__userpurge calling conventions.
These registers have been ordered in an specific way that line up with register IDs used for encoding instructions.
| Enumerator | |
|---|---|
| None | |
| EAX | |
| ECX | |
| EDX | |
| EBX | |
| ESP | |
| EBP | |
| ESI | |
| EDI | |
| ST0 | |
| ST1 | |
| ST2 | |
| ST3 | |
| ST4 | |
| ST5 | |
| ST6 | |
| ST7 | |
| XMM0 | |
| XMM1 | |
| XMM2 | |
| XMM3 | |
| XMM4 | |
| XMM5 | |
| XMM6 | |
| XMM7 | |
| Count | |
|
strong |
|
inline |
Emits a trampoline that forwards arguments from a function with custom calling convention to a __cdecl function in a hook defined with USER_HOOK.
| in_rInfo | The info about the hook. |
| in_address | The address of the __cdecl function to trampoline to. |
| in_isToOriginal | Determines whether this trampoline is going back to the original function. |
|
inline |
|
inline |
Gets the family a register belongs to.
| in_register | The register to check. |
|
inline |
Gets the ID of a register.
| in_register | The register to get the ID for. |