From 477cfee78e56448c9b35fd59baf25d551a7f4a99 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 10 Nov 2022 21:29:17 -0800 Subject: [PATCH] Add PE debug section printing --- ExecutableTest/Program.cs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/ExecutableTest/Program.cs b/ExecutableTest/Program.cs index 9e3ff2dc..bf49797a 100644 --- a/ExecutableTest/Program.cs +++ b/ExecutableTest/Program.cs @@ -807,6 +807,33 @@ namespace ExecutableTest } Console.WriteLine(); + Console.WriteLine(" Debug Table Information:"); + Console.WriteLine(" -------------------------"); + if (executable.OptionalHeader?.Debug == null + || executable.OptionalHeader.Debug.VirtualAddress == 0 + || executable.DebugTable == null) + { + Console.WriteLine(" No debug table items"); + } + else + { + // TODO: If more sections added, model this after the Export Table + for (int i = 0; i < executable.DebugTable.DebugDirectoryTable.Length; i++) + { + var debugDirectoryEntry = executable.DebugTable.DebugDirectoryTable[i]; + Console.WriteLine($" Debug Directory Table Entry {i}"); + Console.WriteLine($" Characteristics: {debugDirectoryEntry.Characteristics}"); + Console.WriteLine($" Time/Date stamp: {debugDirectoryEntry.TimeDateStamp}"); + Console.WriteLine($" Major version: {debugDirectoryEntry.MajorVersion}"); + Console.WriteLine($" Minor version: {debugDirectoryEntry.MinorVersion}"); + Console.WriteLine($" Debug type: {debugDirectoryEntry.DebugType}"); + Console.WriteLine($" Size of data: {debugDirectoryEntry.SizeOfData}"); + Console.WriteLine($" Address of raw data: {debugDirectoryEntry.AddressOfRawData}"); + Console.WriteLine($" Pointer to raw data: {debugDirectoryEntry.PointerToRawData}"); + } + } + Console.WriteLine(); + Console.WriteLine(" Export Table Information:"); Console.WriteLine(" -------------------------"); if (executable.OptionalHeader?.ExportTable == null