This involved adding 16 IMAGE_DATA_DIRECTORY fields to the end of IMAGE_OPTIONAL_HEADER32 and IMAGE_OPTIONAL_HEADER64, then reading in the number of IMAGE_SECTION_HEADERs specified in the IMAGE_FILE_HEADER, and using that number to read in the headers. TimeStamp Īdded loading IMAGE_DATA_DIRECTORY information. As many of the apps I write are in C# I’ve written a general purpose PE Header reading class in C# which has a utility method for getting the link date of the Calling Assembly.ĭateTime linkDate = PeHeaderReader. To do this requires reading in the Portable Executable (PE) header from the EXE or DLL file that is responsible for updating the Window. To facillitate this I print the link date in the main Window Title so I instantly have an idea about how old the version is that I am looking at. This method of distribution is quite ad-hoc so when a client rings me up and asks me to view their screen to look at something, it’s useful to know what build they are running. My clients are 2 tiered where expert users get a new build first, they test if for a while, and if they think it’s acceptable they then pass it on to others. For example, Windows needs to identify the various segments of a program as code segments or data segments, to identify exported and imported. The time pressure of these projects is quite high, so generally people start using the application while I’m still writing it, which means I write it modularly and add features as I go along. Microsoft Windows requires much more information about a program than is available in the format of the. My job consists of writing fully custom applications for groups of people. Reading the Portable Executable (PE) header in C#
0 Comments
Leave a Reply. |