From ffeda7d60be6bc8d04f9ca4560882a78f6a4824f Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Tue, 8 Nov 2022 13:35:21 -0800 Subject: [PATCH] Print NE imported-name table --- ExecutableTest/Program.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/ExecutableTest/Program.cs b/ExecutableTest/Program.cs index 18b81b13..f6a9d9e0 100644 --- a/ExecutableTest/Program.cs +++ b/ExecutableTest/Program.cs @@ -320,7 +320,24 @@ namespace ExecutableTest // TODO: Read the imported names table and print value here var entry = executable.ModuleReferenceTable[i]; Console.WriteLine($" Module-Reference Table Entry {i}"); - Console.WriteLine($" Offset = {entry.Offset}"); + Console.WriteLine($" Offset = {entry.Offset} (adjusted to be {entry.Offset + executable.Stub.Header.NewExeHeaderAddr + executable.Header.ImportedNamesTableOffset})"); + } + } + Console.WriteLine(); + + Console.WriteLine(" Imported-Name Table Information:"); + Console.WriteLine(" -------------------------"); + if (executable.Header.ImportedNamesTableOffset == 0 || executable.ImportedNameTable.Count == 0) + { + Console.WriteLine(" No imported-name table items"); + } + else + { + foreach (var entry in executable.ImportedNameTable) + { + Console.WriteLine($" Imported-Name Table at Offset {entry.Key}"); + Console.WriteLine($" Length = {entry.Value.Length}"); + Console.WriteLine($" Name string = {Encoding.ASCII.GetString(entry.Value.NameString)}"); } } Console.WriteLine();