From 14221efe4b551642b177b4be35b4659b43555840 Mon Sep 17 00:00:00 2001 From: Mael Guillossou Date: Thu, 18 Mar 2021 12:04:25 +0100 Subject: [PATCH] Check bit "long mode active" --- mythril/src/emulate/memio.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mythril/src/emulate/memio.rs b/mythril/src/emulate/memio.rs index ddfc982..4d7a5a6 100644 --- a/mythril/src/emulate/memio.rs +++ b/mythril/src/emulate/memio.rs @@ -415,7 +415,11 @@ fn process_memio_op( let efer = vcpu.vmcs.read_field(vmcs::VmcsField::GuestIa32Efer)?; // TODO: 16bit support - let mode = if efer & 0x00000100 != 0 { 64 } else { 32 }; + let mode = if efer & (1 << 8) != 0 && efer & (1 << 10) != 0 { + 64 + } else { + 32 + }; let mut decoder = iced_x86::Decoder::new(mode, &bytes, iced_x86::DecoderOptions::NONE);