Skip to content

Commit

Permalink
Fix export collection
Browse files Browse the repository at this point in the history
  • Loading branch information
momo5502 committed Sep 1, 2024
1 parent 93f8f7b commit 5254a28
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions src/windows_emulator/module_mapper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,20 @@

namespace
{
void collect_exports(mapped_binary& binary, const unsigned char* ptr, const IMAGE_OPTIONAL_HEADER& optional_header)
void collect_exports(emulator& emu, mapped_binary& binary, const IMAGE_OPTIONAL_HEADER& optional_header)
{
auto& export_directory_entry = optional_header.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT];
if (export_directory_entry.VirtualAddress == 0 || export_directory_entry.Size == 0)
{
return;
}

std::vector<uint8_t> memory{};
memory.resize(binary.size_of_image);
emu.read_memory(binary.image_base, memory.data(), memory.size());

const uint8_t* ptr = memory.data();

const auto* export_directory = reinterpret_cast<const IMAGE_EXPORT_DIRECTORY*>(ptr + export_directory_entry.
VirtualAddress);

Expand Down Expand Up @@ -199,12 +205,7 @@ namespace

map_sections(emu, binary, ptr, *nt_headers);
apply_relocations(emu, binary, optional_header);

static int i = 0;
if (++i < 3)
{
collect_exports(binary, ptr, optional_header);
}
collect_exports(emu, binary, optional_header);

return binary;
}
Expand Down

0 comments on commit 5254a28

Please sign in to comment.