From c277de1ef0af057a8df036bd98d2a345992aa179 Mon Sep 17 00:00:00 2001 From: momo5502 Date: Wed, 21 Aug 2024 19:25:44 +0200 Subject: [PATCH] Fix execution --- cmake/compiler-env.cmake | 8 +------- src/windows_emulator/main.cpp | 14 ++++++++++---- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cmake/compiler-env.cmake b/cmake/compiler-env.cmake index 82bd2b56..9bb7496a 100644 --- a/cmake/compiler-env.cmake +++ b/cmake/compiler-env.cmake @@ -103,13 +103,7 @@ endif() ########################################## -if(MOMO_ENABLE_SANITIZER) - # ASAN on Windows needs /MD - # https://developercommunity.visualstudio.com/t/c-address-sanitizer-statically-linked-dlls-do-not/1403680 - set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$:Debug>DLL) -else() - set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$:Debug>) -endif() +set(CMAKE_MSVC_RUNTIME_LIBRARY MultiThreaded$<$:Debug>DLL) ########################################## diff --git a/src/windows_emulator/main.cpp b/src/windows_emulator/main.cpp index 777271db..2f90f1cf 100644 --- a/src/windows_emulator/main.cpp +++ b/src/windows_emulator/main.cpp @@ -31,12 +31,18 @@ namespace emulator_allocator setup_gs_segment(x64_emulator& emu, const uint64_t segment_base, const uint64_t size) { - const std::array value = { + struct msr_value + { + uint32_t id; + uint64_t value; + }; + + const msr_value value{ IA32_GS_BASE_MSR, segment_base }; - emu.write_register(x64_register::msr, value.data(), value.size()); + emu.write_register(x64_register::msr, &value, sizeof(value)); emu.map_memory(segment_base, size, memory_permission::read_write); return {emu, segment_base, size}; @@ -315,7 +321,7 @@ namespace for (const auto& exp : export_remap) { auto name = exp.second; - emu->hook_memory_execution(exp.first, exp.first, + emu->hook_memory_execution(exp.first, 0, [&emu, n = std::move(name)](const uint64_t address, const size_t) { printf("Executing function: %s (%llX)\n", n.c_str(), address); @@ -347,7 +353,7 @@ namespace //uc.stop(); } - if (hit) + //if (hit) { printf( "Inst: %16llX - RAX: %16llX - RBX: %16llX - RCX: %16llX - RDX: %16llX - R8: %16llX - R9: %16llX - RDI: %16llX - RSI: %16llX\n",