From 87e80346f49197050d43bb7f1e7d2840a9f93287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joel=20H=C3=B6ner?= Date: Sat, 21 Jan 2017 18:15:37 +0100 Subject: [PATCH] Fixed tools --- src/Encoder.c | 2 ++ tools/ZydisDisasm.c | 3 +-- tools/ZydisFuzzIn.c | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Encoder.c b/src/Encoder.c index 8e44483..546cf21 100644 --- a/src/Encoder.c +++ b/src/Encoder.c @@ -501,6 +501,7 @@ static ZydisStatus ZydisPrepareOperand(ZydisEncoderContext* ctx, // TODO: MMX registers // TODO: rBP // TODO: RIP relative addressing + // TODO: Segment prefixes // Memory operand? if (operand->type == ZYDIS_OPERAND_TYPE_MEMORY) @@ -628,6 +629,7 @@ static ZydisStatus ZydisPrepareOperand(ZydisEncoderContext* ctx, if (reg == -1) return ZYDIS_STATUS_INVALID_PARAMETER; // TODO: Conditional assignment instead? ctx->info->details.vex.vvvv = (reg & 0x0F); + ctx->info->details.xop.vvvv = (reg & 0x0F); ctx->info->details.evex.vvvv = (reg & 0x0F); break; } diff --git a/tools/ZydisDisasm.c b/tools/ZydisDisasm.c index 31b4cdd..2f30c50 100644 --- a/tools/ZydisDisasm.c +++ b/tools/ZydisDisasm.c @@ -77,12 +77,11 @@ int main(int argc, char** argv) ZydisStatus status; size_t readOffs = 0; while ((status = ZydisDecoderDecodeInstruction( - &decoder, readBuf + readOffs, numBytesRead - readOffs, &info + &decoder, readBuf + readOffs, numBytesRead - readOffs, readOffs, &info )) != ZYDIS_STATUS_NO_MORE_DATA) { if (!ZYDIS_SUCCESS(status)) { - ++decoder.instructionPointer; ++readOffs; printf("db %02X\n", info.data[0]); continue; diff --git a/tools/ZydisFuzzIn.c b/tools/ZydisFuzzIn.c index 31ad6c6..575d698 100644 --- a/tools/ZydisFuzzIn.c +++ b/tools/ZydisFuzzIn.c @@ -87,12 +87,11 @@ int main() ZydisStatus status; size_t readOffs = 0; while ((status = ZydisDecoderDecodeInstruction( - &decoder, readBuf + readOffs, numBytesRead - readOffs, &info + &decoder, readBuf + readOffs, numBytesRead - readOffs, readOffs, &info )) != ZYDIS_STATUS_NO_MORE_DATA) { if (!ZYDIS_SUCCESS(status)) { - ++decoder.instructionPointer; ++readOffs; continue; }