Classes | |
| class | Context |
| struct | MemAccess |
| struct | MemoryBlock |
| struct | OpLog |
| struct | ValAddr |
Public Types | |
| enum | OP { OP_EXIT = 0 , OP_CMP_EQ = 1 , OP_CMP_NE = 2 , OP_CMP_LE = 3 , OP_CMP_LEQ = 4 , OP_CMP_GR = 5 , OP_CMP_GREQ = 6 , OP_CMP_NAE = 7 , OP_CMP_NA = 8 , OP_CMP_A = 9 , OP_CMP_AE = 10 , OP_BRANCH = 11 , OP_JMP = 12 , OP_SP_ADD = 13 , OP_MOV_EDI_ECX_AL = 14 , OP_MOV_EBX_ECX_AL = 15 , OP_MOV_EDI_ECX_EAX = 16 , OP_MOV_EBX_ECX_EAX = 17 , OP_RET = 18 , OP_RETX = 19 , OP_MOV_EDX_EAX = 20 , OP_ADD_EAX_EDX = 21 , OP_MUL = 22 , OP_OR = 23 , OP_XOR = 24 , OP_AND = 25 , OP_NEG = 26 , OP_SAR = 27 , OP_SHL = 28 , OP_LOAD = 29 , OP_INC = 30 , OP_DEC = 31 , OP_XCHG = 32 , OP_PUSH_EAX = 33 , OP_POP_EDX = 34 , OP_LOAD_OFFSET_EDI = 35 , OP_LOAD_OFFSET_EDI2 = 36 , OP_LOAD_OFFSET_EBX = 37 , OP_LOAD_OFFSET_ESP = 38 , OP_MOV_PTR_EDX_AL = 39 , OP_MOV_PTR_EDX_EAX = 40 , OP_SHL_2 = 41 , OP_ADD_4 = 42 , OP_SUB_4 = 43 , OP_XCHG_ESP = 44 , OP_NEG_ADD = 45 , OP_DIV = 46 , OP_MOV_EAX_BPTR_EDI = 47 , OP_MOV_EAX_BPTR_EBX = 48 , OP_MOV_EAX_DPTR_EDI = 49 , OP_MOV_EAX_DPTR_EBX = 50 , OP_MOV_EAX_BPTR_EAX = 51 , OP_MOV_EAX_DPTR_EAX = 52 , OP_PUSH_ESI_ADD_EDI = 53 , OP_CALL_FUNC = 54 , OP_PUSH_ESI_SET_EDX_EDI = 55 , OP_MAX } |
| enum | MEMREF { REF_UNK = 0 , REF_STACK = 1 , REF_EBX = 2 , REF_EDI = 3 } |
| typedef void(* | CallDispatcher) (void *object, Context *state, uint32 funcID) |
Public Member Functions | |
| VM (void *obj, CallDispatcher dispatcher) | |
| MemAccess & | memory () |
| void | clearMemory () |
| void | writeMemory (uint32 address, const byte *data, uint32 dataSize) |
| void | zeroMemory (uint32 address, uint32 count) |
| MemoryBlock * | findMemoryBlock (uint32 address) |
| MemoryBlock * | createBlock (uint32 address) |
| Common::Array< byte > | readMemBlocks (uint32 address, uint32 count) |
| void | readMemBlocks (byte *dst, uint32 address, uint32 count) |
| Common::String | readMemString (uint32 address, uint32 maxLen=256) |
| uint32 | doScript (uint32 scriptAddress, byte *storage=nullptr) |
| Common::String | decodeOp (uint32 address, int *size=nullptr) |
| Common::String | disassembly (uint32 address) |
| Common::String | opLog (const Common::Array< OpLog > &log) |
| void | printDisassembly (uint32 address) |
Static Public Member Functions | |
| static int32 | getS32 (const void *) |
| static uint32 | getU32 (const void *) |
| static void | setU32 (void *, uint32 val) |
Public Attributes | |
| bool | _interrupt = false |
Protected Attributes | |
| Common::HashMap< uint32, MemoryBlock > | _memMap |
| MemAccess | _memAccess |
| Context | _threads [THREADS_COUNT] |
| CallDispatcher const | _callFuncs = nullptr |
| void *const | _callingObject = nullptr |