Renamed disassembler mode constants

ZYDIS_DISASSEMBLER_MODE_* -> ZYDIS_OPERATING_MODE_*
This commit is contained in:
Joel Höner 2017-04-12 21:12:18 +02:00
parent 71a6d786d7
commit 40d6c39dbe
7 changed files with 44 additions and 44 deletions

View File

@ -195,7 +195,7 @@ void disassembleBuffer(uint8_t* data, size_t length, ZydisBool installHooks)
ZydisInstructionInfo info; ZydisInstructionInfo info;
char buffer[256]; char buffer[256];
while (ZYDIS_SUCCESS( while (ZYDIS_SUCCESS(
ZydisDecode(ZYDIS_DISASSEMBLER_MODE_64BIT, data, length, instructionPointer, &info))) ZydisDecode(ZYDIS_OPERATING_MODE_64BIT, data, length, instructionPointer, &info)))
{ {
data += info.length; data += info.length;
length -= info.length; length -= info.length;

View File

@ -401,13 +401,13 @@ typedef struct ZydisOperandInfo_
typedef uint8_t ZydisOperatingMode; typedef uint8_t ZydisOperatingMode;
/** /**
* @brief Values that represent disassembler-modes. * @brief Values that represent operating modes.
*/ */
enum ZydisDisassemblerModes enum ZydisOperatingModes
{ {
ZYDIS_DISASSEMBLER_MODE_16BIT = 16, ZYDIS_OPERATING_MODE_16BIT = 16,
ZYDIS_DISASSEMBLER_MODE_32BIT = 32, ZYDIS_OPERATING_MODE_32BIT = 32,
ZYDIS_DISASSEMBLER_MODE_64BIT = 64 ZYDIS_OPERATING_MODE_64BIT = 64
}; };
/* ---------------------------------------------------------------------------------------------- */ /* ---------------------------------------------------------------------------------------------- */

View File

@ -512,7 +512,7 @@ static ZydisStatus ZydisCollectOptionalPrefixes(ZydisDecoderContext* ctx,
++info->details.prefixes.has67; ++info->details.prefixes.has67;
break; break;
default: default:
if ((ctx->operatingMode == ZYDIS_DISASSEMBLER_MODE_64BIT) && if ((ctx->operatingMode == ZYDIS_OPERATING_MODE_64BIT) &&
(prefixByte & 0xF0) == 0x40) (prefixByte & 0xF0) == 0x40)
{ {
info->details.rex.data[0] = prefixByte; info->details.rex.data[0] = prefixByte;
@ -722,13 +722,13 @@ static ZydisStatus ZydisDecodeOperandModrmRm(ZydisDecoderContext* ctx,
} }
switch (ctx->operatingMode) switch (ctx->operatingMode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: // TODO: Set ZYDIS_ATTRIB_ACCEPTS_ADDRESSSIZE and ZYDIS_ATTRIB_HAS_ADDRESSSIZE after getting the instruction definition case ZYDIS_OPERATING_MODE_16BIT: // TODO: Set ZYDIS_ATTRIB_ACCEPTS_ADDRESSSIZE and ZYDIS_ATTRIB_HAS_ADDRESSSIZE after getting the instruction definition
operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 16; operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 16;
break; break;
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 16 : 32; operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 16 : 32;
break; break;
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 64; operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 64;
break; break;
default: default:
@ -772,7 +772,7 @@ static ZydisStatus ZydisDecodeOperandModrmRm(ZydisDecoderContext* ctx,
case 0: case 0:
if (modrm_rm == 5) if (modrm_rm == 5)
{ {
if (ctx->operatingMode == ZYDIS_DISASSEMBLER_MODE_64BIT) if (ctx->operatingMode == ZYDIS_OPERATING_MODE_64BIT)
{ {
info->attributes |= ZYDIS_ATTRIB_IS_RELATIVE; info->attributes |= ZYDIS_ATTRIB_IS_RELATIVE;
operand->mem.base = ZYDIS_REGISTER_EIP; operand->mem.base = ZYDIS_REGISTER_EIP;
@ -1035,11 +1035,11 @@ static ZydisStatus ZydisDecodeOperand(ZydisDecoderContext* ctx, ZydisInstruction
registerClass = ZYDIS_REGCLASS_TEST; registerClass = ZYDIS_REGCLASS_TEST;
break; break;
case ZYDIS_SEM_OPERAND_TYPE_CR: case ZYDIS_SEM_OPERAND_TYPE_CR:
operand->size = (ctx->operatingMode == ZYDIS_DISASSEMBLER_MODE_64BIT) ? 64 : 32; operand->size = (ctx->operatingMode == ZYDIS_OPERATING_MODE_64BIT) ? 64 : 32;
registerClass = ZYDIS_REGCLASS_CONTROL; registerClass = ZYDIS_REGCLASS_CONTROL;
break; break;
case ZYDIS_SEM_OPERAND_TYPE_DR: case ZYDIS_SEM_OPERAND_TYPE_DR:
operand->size = (ctx->operatingMode == ZYDIS_DISASSEMBLER_MODE_64BIT) ? 64 : 32; operand->size = (ctx->operatingMode == ZYDIS_OPERATING_MODE_64BIT) ? 64 : 32;
registerClass = ZYDIS_REGCLASS_DEBUG; registerClass = ZYDIS_REGCLASS_DEBUG;
break; break;
case ZYDIS_SEM_OPERAND_TYPE_FPR: case ZYDIS_SEM_OPERAND_TYPE_FPR:
@ -1512,13 +1512,13 @@ static ZydisStatus ZydisDecodeOperand(ZydisDecoderContext* ctx, ZydisInstruction
} }
switch (ctx->operatingMode) switch (ctx->operatingMode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_OPERATING_MODE_16BIT:
operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 16; operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 16;
break; break;
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 16 : 32; operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 16 : 32;
break; break;
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 64; operand->mem.addressSize = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 32 : 64;
break; break;
default: default:
@ -1949,7 +1949,7 @@ static ZydisStatus ZydisNodeHandlerMode(ZydisDecoderContext* ctx, uint16_t* inde
ZYDIS_ASSERT(ctx); ZYDIS_ASSERT(ctx);
ZYDIS_ASSERT(index); ZYDIS_ASSERT(index);
*index = (ctx->operatingMode == ZYDIS_DISASSEMBLER_MODE_64BIT) ? 0 : 1; *index = (ctx->operatingMode == ZYDIS_OPERATING_MODE_64BIT) ? 0 : 1;
return ZYDIS_STATUS_SUCCESS; return ZYDIS_STATUS_SUCCESS;
} }
@ -2074,11 +2074,11 @@ static ZydisStatus ZydisNodeHandlerOperandSize(ZydisDecoderContext* ctx,
switch (ctx->operatingMode) switch (ctx->operatingMode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_OPERATING_MODE_16BIT:
*index = (info->attributes & ZYDIS_ATTRIB_HAS_OPERANDSIZE) ? 1 : 0; *index = (info->attributes & ZYDIS_ATTRIB_HAS_OPERANDSIZE) ? 1 : 0;
break; break;
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
*index = (info->attributes & ZYDIS_ATTRIB_HAS_OPERANDSIZE) ? 0 : 1; *index = (info->attributes & ZYDIS_ATTRIB_HAS_OPERANDSIZE) ? 0 : 1;
break; break;
default: default:
@ -2102,13 +2102,13 @@ static ZydisStatus ZydisNodeHandlerAddressSize(ZydisDecoderContext* ctx,
switch (ctx->operatingMode) switch (ctx->operatingMode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_OPERATING_MODE_16BIT:
*index = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 1 : 0; *index = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 1 : 0;
break; break;
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
*index = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 0 : 1; *index = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 0 : 1;
break; break;
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
*index = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 1 : 2; *index = (info->attributes & ZYDIS_ATTRIB_HAS_ADDRESSSIZE) ? 1 : 2;
break; break;
default: default:
@ -2357,9 +2357,9 @@ ZydisStatus ZydisDecode(ZydisOperatingMode operatingMode, const void* buffer, si
ZydisStatus ZydisDecodeEx(ZydisOperatingMode operatingMode, const void* buffer, size_t bufferLen, ZydisStatus ZydisDecodeEx(ZydisOperatingMode operatingMode, const void* buffer, size_t bufferLen,
uint64_t instructionPointer, ZydisDecodeGranularity granularity, ZydisInstructionInfo* info) uint64_t instructionPointer, ZydisDecodeGranularity granularity, ZydisInstructionInfo* info)
{ {
if ((operatingMode != ZYDIS_DISASSEMBLER_MODE_16BIT) && if ((operatingMode != ZYDIS_OPERATING_MODE_16BIT) &&
(operatingMode != ZYDIS_DISASSEMBLER_MODE_32BIT) && (operatingMode != ZYDIS_OPERATING_MODE_32BIT) &&
(operatingMode != ZYDIS_DISASSEMBLER_MODE_64BIT)) (operatingMode != ZYDIS_OPERATING_MODE_64BIT))
{ {
return ZYDIS_STATUS_INVALID_PARAMETER; return ZYDIS_STATUS_INVALID_PARAMETER;
} }

View File

@ -607,7 +607,7 @@ static ZydisStatus ZydisPrepareMemoryOperand(ZydisEncoderContext* ctx,
ctx->dispBitSize = 32; ctx->dispBitSize = 32;
// In 32 bit mode, ModRM allows for a shortcut here. // In 32 bit mode, ModRM allows for a shortcut here.
if (ctx->info->mode == ZYDIS_DISASSEMBLER_MODE_32BIT) if (ctx->info->mode == ZYDIS_OPERATING_MODE_32BIT)
{ {
ctx->info->details.modrm.mod = 0x00; ctx->info->details.modrm.mod = 0x00;
ctx->info->details.modrm.rm = 0x05 /* memory */; ctx->info->details.modrm.rm = 0x05 /* memory */;
@ -630,7 +630,7 @@ static ZydisStatus ZydisPrepareMemoryOperand(ZydisEncoderContext* ctx,
if (ZydisIsIPReg(operand->mem.base)) if (ZydisIsIPReg(operand->mem.base))
{ {
// rIP addressing is only available since AMD64. // rIP addressing is only available since AMD64.
if (ctx->info->mode != ZYDIS_DISASSEMBLER_MODE_64BIT) if (ctx->info->mode != ZYDIS_OPERATING_MODE_64BIT)
{ {
return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO
} }
@ -664,12 +664,12 @@ static ZydisStatus ZydisPrepareMemoryOperand(ZydisEncoderContext* ctx,
case ZYDIS_REGCLASS_GPR16: case ZYDIS_REGCLASS_GPR16:
switch (ctx->info->mode) switch (ctx->info->mode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_OPERATING_MODE_16BIT:
break; // Nothing to do. break; // Nothing to do.
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
ctx->info->attributes |= ZYDIS_ATTRIB_HAS_ADDRESSSIZE; ctx->info->attributes |= ZYDIS_ATTRIB_HAS_ADDRESSSIZE;
break; break;
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
// AMD64 doesn't allow for 16 bit addressing. // AMD64 doesn't allow for 16 bit addressing.
return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO
default: default:
@ -679,18 +679,18 @@ static ZydisStatus ZydisPrepareMemoryOperand(ZydisEncoderContext* ctx,
case ZYDIS_REGCLASS_GPR32: case ZYDIS_REGCLASS_GPR32:
switch (ctx->info->mode) switch (ctx->info->mode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_OPERATING_MODE_16BIT:
return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
break; // Nothing to do. break; // Nothing to do.
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
ctx->info->attributes |= ZYDIS_ATTRIB_HAS_ADDRESSSIZE; ctx->info->attributes |= ZYDIS_ATTRIB_HAS_ADDRESSSIZE;
default: default:
return ZYDIS_STATUS_INVALID_PARAMETER; // TODO return ZYDIS_STATUS_INVALID_PARAMETER; // TODO
} }
break; break;
case ZYDIS_REGCLASS_GPR64: case ZYDIS_REGCLASS_GPR64:
if (ctx->info->mode != ZYDIS_DISASSEMBLER_MODE_64BIT) if (ctx->info->mode != ZYDIS_OPERATING_MODE_64BIT)
{ {
return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO return ZYDIS_STATUS_IMPOSSIBLE_INSTRUCTION; // TODO
} }
@ -966,9 +966,9 @@ static ZydisStatus ZydisFindMatchingDef(const ZydisInstructionInfo* info,
if (curEntry->mnemonic != info->mnemonic || if (curEntry->mnemonic != info->mnemonic ||
curEntry->operandCount != info->operandCount || curEntry->operandCount != info->operandCount ||
curEntry->encoding != info->encoding || curEntry->encoding != info->encoding ||
(info->mode == ZYDIS_DISASSEMBLER_MODE_64BIT && (info->mode == ZYDIS_OPERATING_MODE_64BIT &&
curEntry->modeConstraint == ZYDIS_MODE_CONSTR_EXCLUDE64) || curEntry->modeConstraint == ZYDIS_MODE_CONSTR_EXCLUDE64) ||
(info->mode != ZYDIS_DISASSEMBLER_MODE_64BIT && (info->mode != ZYDIS_OPERATING_MODE_64BIT &&
curEntry->modeConstraint == ZYDIS_MODE_CONSTR_REQUIRE64)) curEntry->modeConstraint == ZYDIS_MODE_CONSTR_REQUIRE64))
{ {
continue; continue;

View File

@ -393,11 +393,11 @@ static ZydisStatus ZydisFormatterPrintAddressIntel(ZydisInstructionFormatter* fo
switch (info->mode) switch (info->mode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_OPERATING_MODE_16BIT:
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
return ZydisStringBufferAppendFormat(buffer, bufferLen, ZYDIS_STRBUF_APPEND_MODE_DEFAULT, return ZydisStringBufferAppendFormat(buffer, bufferLen, ZYDIS_STRBUF_APPEND_MODE_DEFAULT,
"0x%08"PRIX64, address); "0x%08"PRIX64, address);
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
return ZydisStringBufferAppendFormat(buffer, bufferLen, ZYDIS_STRBUF_APPEND_MODE_DEFAULT, return ZydisStringBufferAppendFormat(buffer, bufferLen, ZYDIS_STRBUF_APPEND_MODE_DEFAULT,
"0x%016"PRIX64, address); "0x%016"PRIX64, address);
default: default:

View File

@ -68,14 +68,14 @@ ZydisStatus ZydisUtilsCalcAbsoluteTargetAddress(const ZydisInstructionInfo* info
(uint64_t)((int64_t)info->instrPointer + info->length + operand->imm.value.sqword); (uint64_t)((int64_t)info->instrPointer + info->length + operand->imm.value.sqword);
switch (info->mode) switch (info->mode)
{ {
case ZYDIS_DISASSEMBLER_MODE_16BIT: case ZYDIS_OPERATING_MODE_16BIT:
case ZYDIS_DISASSEMBLER_MODE_32BIT: case ZYDIS_OPERATING_MODE_32BIT:
if (operand->size == 16) if (operand->size == 16)
{ {
*address &= 0xFFFF; *address &= 0xFFFF;
} }
break; break;
case ZYDIS_DISASSEMBLER_MODE_64BIT: case ZYDIS_OPERATING_MODE_64BIT:
break; break;
default: default:
return ZYDIS_STATUS_INVALID_PARAMETER; return ZYDIS_STATUS_INVALID_PARAMETER;

View File

@ -70,7 +70,7 @@ int main(int argc, char** argv)
ZydisStatus status; ZydisStatus status;
size_t readOffs = 0; size_t readOffs = 0;
while ((status = ZydisDecode( while ((status = ZydisDecode(
ZYDIS_DISASSEMBLER_MODE_64BIT, ZYDIS_OPERATING_MODE_64BIT,
readBuf + readOffs, readBuf + readOffs,
numBytesRead - readOffs, numBytesRead - readOffs,
readOffs, readOffs,