From 6f736808ba899429591eeb79eae661c9bbbc857b Mon Sep 17 00:00:00 2001 From: momo5502 Date: Sun, 5 Jan 2025 10:19:19 +0100 Subject: [PATCH] Small cleanup --- src/windows-emulator/module/module_mapping.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/windows-emulator/module/module_mapping.cpp b/src/windows-emulator/module/module_mapping.cpp index 31e9d00e..d9adb256 100644 --- a/src/windows-emulator/module/module_mapping.cpp +++ b/src/windows-emulator/module/module_mapping.cpp @@ -35,20 +35,24 @@ namespace const auto export_directory = buffer.as(export_directory_entry. VirtualAddress).get(); - //const auto function_count = export_directory->NumberOfFunctions; const auto names_count = export_directory.NumberOfNames; + //const auto function_count = export_directory.NumberOfFunctions; const auto names = buffer.as(export_directory.AddressOfNames); const auto ordinals = buffer.as(export_directory.AddressOfNameOrdinals); const auto functions = buffer.as(export_directory.AddressOfFunctions); + binary.exports.reserve(names_count); + for (DWORD i = 0; i < names_count; i++) { + const auto ordinal = ordinals.get(i); + exported_symbol symbol{}; - symbol.ordinal = ordinals.get(i); - symbol.name = buffer.as_string(names.get(i)); - symbol.rva = functions.get(symbol.ordinal); + symbol.ordinal = export_directory.Base + ordinal; + symbol.rva = functions.get(ordinal); symbol.address = binary.image_base + symbol.rva; + symbol.name = buffer.as_string(names.get(i)); binary.exports.push_back(std::move(symbol)); }