import logging
logger = logging.getLogger(__name__)
from termcolor import cprint, colored
from . import CPUContextBase
[docs]class X64Context(CPUContextBase):
REGS = ['rip', 'rsp', 'rbp', 'rax', 'rbx', 'rcx', 'rdx', 'rsi', 'rdi', 'r8', 'r9', 'r10', 'r11', 'r12', 'r13', 'r14', 'r15']
REGS_ALL = {
'sp' : 'self.rsp',
'bp' : 'self.rbp',
'ip' : 'self.rip',
'rax' : 'self.rax',
'eax' : 'self.rax & 0xffffffff',
'ax' : 'self.rax & 0xffff',
'al' : 'self.rax & 0xff',
'ah' : '(self.rax>>8) & 0xff',
'rbx' : 'self.rbx',
'ebx' : 'self.rbx & 0xffffffff',
'bx' : 'self.rbx & 0xffff',
'bl' : 'self.rbx & 0xff',
'bh' : '(self.rbx>>8) & 0xff',
'rcx' : 'self.rcx',
'ecx' : 'self.rcx & 0xffffffff',
'cx' : 'self.rcx & 0xffff',
'cl' : 'self.rcx & 0xff',
'ch' : '(self.rcx>>8) & 0xff',
'rdx' : 'self.rdx',
'edx' : 'self.rdx & 0xffffffff',
'dx' : 'self.rdx & 0xffff',
'dl' : 'self.rdx & 0xff',
'dh' : '(self.rdx>>8) & 0xff',
'r8' : 'self.r8',
'r8d' : 'self.r8 & 0xffffffff',
'r8w' : 'self.r8 & 0xffff',
'r8b' : 'self.r8 & 0xff',
'r9' : 'self.r9',
'r9d' : 'self.r9 & 0xffffffff',
'r9w' : 'self.r9 & 0xffff',
'r9b' : 'self.r9 & 0xff',
'r10' : 'self.r10',
'r10d': 'self.r10 & 0xffffffff',
'r10w': 'self.r10 & 0xffff',
'r10b': 'self.r10 & 0xff',
'r11' : 'self.r11',
'r11d': 'self.r11 & 0xffffffff',
'r11w': 'self.r11 & 0xffff',
'r11b': 'self.r11 & 0xff',
'r12' : 'self.r12',
'r12d': 'self.r12 & 0xffffffff',
'r12w': 'self.r12 & 0xffff',
'r12b': 'self.r12 & 0xff',
'r13' : 'self.r13',
'r13d': 'self.r13 & 0xffffffff',
'r13w': 'self.r13 & 0xffff',
'r13b': 'self.r13 & 0xff',
'r14' : 'self.r14',
'r14d': 'self.r14 & 0xffffffff',
'r14w': 'self.r14 & 0xffff',
'r14b': 'self.r14 & 0xff',
'r15' : 'self.r15',
'r15d': 'self.r15 & 0xffffffff',
'r15w': 'self.r15 & 0xffff',
'r15b': 'self.r15 & 0xff',
'rsi' : 'self.rsi',
'esi' : 'self.rsi & 0xffffffff',
'si' : 'self.rsi & 0xffff',
'sil' : 'self.rsi & 0xff',
'rdi' : 'self.rdi',
'edi' : 'self.rdi & 0xffffffff',
'di' : 'self.rdi & 0xffff',
'dil' : 'self.rdi & 0xff',
'rbp' : 'self.rbp',
'ebp' : 'self.rbp & 0xffffffff',
'bp' : 'self.rbp & 0xffff',
'bpl' : 'self.rbp & 0xff',
'rsp' : 'self.rsp',
'esp' : 'self.rsp & 0xffffffff',
'sp' : 'self.rsp & 0xffff',
'spl' : 'self.rsp & 0xff',
'rip' : 'self.rip',
}
__slots__ = REGS
from ... import types, common
from ...exceptions import *