From 24939583c44bacc8843a5e726b5f459bbfed81ba Mon Sep 17 00:00:00 2001 From: momo5502 Date: Fri, 6 Jun 2025 16:59:45 +0200 Subject: [PATCH] Fix serialization --- src/windows-emulator/module/module_manager.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/windows-emulator/module/module_manager.cpp b/src/windows-emulator/module/module_manager.cpp index 6e20e135..bd5428ed 100644 --- a/src/windows-emulator/module/module_manager.cpp +++ b/src/windows-emulator/module/module_manager.cpp @@ -145,9 +145,9 @@ void module_manager::serialize(utils::buffer_serializer& buffer) const { buffer.write_map(this->modules_); - buffer.write(this->executable->image_base); - buffer.write(this->ntdll->image_base); - buffer.write(this->win32u->image_base); + buffer.write(this->executable ? this->executable->image_base : 0); + buffer.write(this->ntdll ? this->ntdll->image_base : 0); + buffer.write(this->win32u ? this->win32u->image_base : 0); } void module_manager::deserialize(utils::buffer_deserializer& buffer) @@ -158,9 +158,9 @@ void module_manager::deserialize(utils::buffer_deserializer& buffer) const auto ntdll_base = buffer.read(); const auto win32u_base = buffer.read(); - this->executable = this->find_by_address(executable_base); - this->ntdll = this->find_by_address(ntdll_base); - this->win32u = this->find_by_address(win32u_base); + this->executable = executable_base ? this->find_by_address(executable_base) : nullptr; + this->ntdll = ntdll_base ? this->find_by_address(ntdll_base) : nullptr; + this->win32u = win32u_base ? this->find_by_address(win32u_base) : nullptr; } bool module_manager::unmap(const uint64_t address, const logger& logger)