mirror of
https://github.com/momo5502/emulator.git
synced 2026-01-09 15:46:17 +00:00
Revert "module manager: safer ldr init block setup"
This commit is contained in:
@@ -285,10 +285,10 @@ void module_manager::load_wow64_modules(const windows_path& executable_path, con
|
||||
|
||||
// Set up LdrSystemDllInitBlock structure
|
||||
PS_SYSTEM_DLL_INIT_BLOCK init_block = {};
|
||||
constexpr uint64_t system_dll_init_block_size = sizeof(PS_SYSTEM_DLL_INIT_BLOCK);
|
||||
constexpr uint64_t symtem_dll_init_block_fix_size = 0xF0; // Wine or WIN10
|
||||
|
||||
// Basic structure initialization
|
||||
init_block.Size = system_dll_init_block_size;
|
||||
init_block.Size = symtem_dll_init_block_fix_size;
|
||||
|
||||
// Calculate relocation values
|
||||
// SystemDllWowRelocation = mapped_base - original_imagebase for 32-bit ntdll
|
||||
@@ -344,11 +344,8 @@ void module_manager::load_wow64_modules(const windows_path& executable_path, con
|
||||
return;
|
||||
}
|
||||
|
||||
const auto write_size = static_cast<uint32_t>(system_dll_init_block_size);
|
||||
init_block.Size = write_size;
|
||||
|
||||
// Write the initialized structure to the export address
|
||||
this->memory_->write_memory(ldr_init_block_addr, &init_block, write_size);
|
||||
this->memory_->write_memory(ldr_init_block_addr, &init_block, symtem_dll_init_block_fix_size);
|
||||
|
||||
logger.info("Successfully initialized LdrSystemDllInitBlock at 0x%" PRIx64 "\n", ldr_init_block_addr);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user