From b442fa55b4bbfcdde94855dc3f752a94b76f2eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joel=20H=C3=B6ner?= Date: Sun, 25 Jun 2017 23:28:15 +0200 Subject: [PATCH] Fixed tools --- tools/ZydisDisasm.c | 12 ++++++++++-- tools/ZydisFuzzIn.c | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/tools/ZydisDisasm.c b/tools/ZydisDisasm.c index 195f388..1072e5c 100644 --- a/tools/ZydisDisasm.c +++ b/tools/ZydisDisasm.c @@ -51,6 +51,14 @@ int main(int argc, char** argv) return EXIT_FAILURE; } + ZydisInstructionDecoder decoder; + if (!ZYDIS_SUCCESS(ZydisDecoderInitInstructionDecoder( + &decoder, ZYDIS_MACHINE_MODE_LONG_64, ZYDIS_ADDRESS_WIDTH_INVALID))) + { + fputs("Failed to initialize decoder\n", stderr); + return EXIT_FAILURE; + } + ZydisInstructionFormatter formatter; if (!ZYDIS_SUCCESS(ZydisFormatterInitInstructionFormatterEx(&formatter, ZYDIS_FORMATTER_STYLE_INTEL, ZYDIS_FMTFLAG_FORCE_SEGMENTS | ZYDIS_FMTFLAG_FORCE_OPERANDSIZE, @@ -69,8 +77,8 @@ int main(int argc, char** argv) ZydisInstructionInfo info; ZydisStatus status; size_t readOffs = 0; - while ((status = ZydisDecode( - ZYDIS_OPERATING_MODE_64BIT, + while ((status = ZydisDecoderDecodeBuffer( + &decoder, readBuf + readOffs, numBytesRead - readOffs, readOffs, diff --git a/tools/ZydisFuzzIn.c b/tools/ZydisFuzzIn.c index 2b4549c..1b664aa 100644 --- a/tools/ZydisFuzzIn.c +++ b/tools/ZydisFuzzIn.c @@ -40,13 +40,13 @@ #include typedef struct ZydisFuzzControlBlock_ { - ZydisOperatingMode operatingMode; + ZydisMachineMode machineMode; + ZydisDecodeGranularity granularity; ZydisFormatterStyle formatterStyle; ZydisFormatterFlags formatterFlags; ZydisFormatterAddressFormat formatterAddrFormat; ZydisFormatterDisplacementFormat formatterDispFormat; ZydisFormatterImmediateFormat formatterImmFormat; - ZydisDecodeGranularity granularity; } ZydisFuzzControlBlock; /* ============================================================================================== */ @@ -62,6 +62,15 @@ int main() return EXIT_FAILURE; } + ZydisInstructionDecoder decoder; + if (!ZYDIS_SUCCESS(ZydisDecoderInitInstructionDecoderEx( + &decoder, controlBlock.machineMode, + ZYDIS_ADDRESS_WIDTH_INVALID, controlBlock.granularity))) + { + fputs("Failed to initialize decoder\n", stderr); + return EXIT_FAILURE; + } + ZydisInstructionFormatter formatter; if (!ZYDIS_SUCCESS(ZydisFormatterInitInstructionFormatterEx(&formatter, controlBlock.formatterStyle, controlBlock.formatterFlags, controlBlock.formatterAddrFormat, @@ -80,12 +89,11 @@ int main() ZydisInstructionInfo info; ZydisStatus status; size_t readOffs = 0; - while ((status = ZydisDecodeEx( - controlBlock.operatingMode, + while ((status = ZydisDecoderDecodeBuffer( + &decoder, readBuf + readOffs, numBytesRead - readOffs, readOffs, - controlBlock.granularity, &info )) != ZYDIS_STATUS_NO_MORE_DATA) {