diff options
Diffstat (limited to 'cheat/internal_rewrite/x86.hpp')
| -rw-r--r-- | cheat/internal_rewrite/x86.hpp | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/cheat/internal_rewrite/x86.hpp b/cheat/internal_rewrite/x86.hpp new file mode 100644 index 0000000..e737013 --- /dev/null +++ b/cheat/internal_rewrite/x86.hpp @@ -0,0 +1,47 @@ +#pragma once +#include <inttypes.h> + +namespace x86 +{ + enum class reg : size_t { + eax = 0, + ecx, + edx, + ebx, + esp, + ebp, + esi, + edi, + + /* + x64: + r8, + r9, + r10, + r11, + r12, + r13, + r14, + r15,*/ + }; + + enum instruction : uint8_t { + retn_imm16 = 0xc2, + retn = 0xc3, + fs = 0x64, + //its big nigga season + call = 0xff + }; + + __forceinline static uint32_t encode_mov_imm32( x86::reg dreg ) { + return ( 0xb8 + ( size_t( dreg ) ) ); + } + + __forceinline static uint32_t encode_push_reg( x86::reg dreg ) { + return ( 0x50 | ( ( size_t( dreg ) ) & 7 ) ); + } + + __forceinline static uint32_t encode_pop_reg( x86::reg dreg ) { + return ( 0x58 | ( ( size_t( dreg ) ) & 7 ) ); + } +};
\ No newline at end of file |
