From d3e61b42dd41c7d43496a0dde7e57be7accd32f7 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 24 Jun 2025 17:14:25 -0400 Subject: [PATCH] Attempt to fix export table name table --- .../Deserializers/PortableExecutable.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/SabreTools.Serialization/Deserializers/PortableExecutable.cs b/SabreTools.Serialization/Deserializers/PortableExecutable.cs index 4ac8809f..e29ddac5 100644 --- a/SabreTools.Serialization/Deserializers/PortableExecutable.cs +++ b/SabreTools.Serialization/Deserializers/PortableExecutable.cs @@ -724,16 +724,16 @@ namespace SabreTools.Serialization.Deserializers } // Name table - if (exportDirectoryTable.NumberOfNamePointers != 0 && exportDirectoryTable.NameRVA.ConvertVirtualAddress(sections) != 0) + if (exportDirectoryTable.NumberOfNamePointers != 0 && exportTable.NamePointerTable?.Pointers != null) { - uint nameTableAddress = exportDirectoryTable.NameRVA.ConvertVirtualAddress(sections); - data.Seek(nameTableAddress, SeekOrigin.Begin); - var exportNameTable = new ExportNameTable(); exportNameTable.Strings = new string[exportDirectoryTable.NumberOfNamePointers]; for (int i = 0; i < exportDirectoryTable.NumberOfNamePointers; i++) { + uint nameAddress = exportTable.NamePointerTable.Pointers[i].ConvertVirtualAddress(sections); ; + data.Seek(nameAddress, SeekOrigin.Begin); + string? str = data.ReadNullTerminatedAnsiString(); exportNameTable.Strings[i] = str ?? string.Empty; }