
- #OLD FILE TURNED INTO EXE FILE MAC FULL#
- #OLD FILE TURNED INTO EXE FILE MAC PORTABLE#
- #OLD FILE TURNED INTO EXE FILE MAC CODE#
- #OLD FILE TURNED INTO EXE FILE MAC WINDOWS#
rdata section wasn't really used for anything important. In addition, many things that were true then are incorrect now. Likewise, my description of the date/time stamp DWORD used throughout the file format is accurate only if you live in the Pacific time zone! For example, my description of Thread Local Storage (TLS) support was way out in left field.
#OLD FILE TURNED INTO EXE FILE MAC FULL#
NET metadata format, but save a thorough survey of its full splendor for a subsequent article.Īnd if all these additions and subtractions to the world of Win32 weren't enough justification to remake the article with modern day special effects, there are also errors in the original piece that make me cringe. In this article, I'll knock on the door of the.

NET runtime recognizes data within these executable files as the metadata and intermediate language that are so central to. NET executables are just plain old Win32 executable files. Where does it fit in? To the operating system. There are many new things to shoehorn into the story.Īnd let's not forget about Microsoft®. Optimizations such as delay loading of DLLs, section merging, and binding were still over the horizon.
#OLD FILE TURNED INTO EXE FILE MAC WINDOWS#
Windows CE adds all sorts of new processor types.
#OLD FILE TURNED INTO EXE FILE MAC PORTABLE#
However, there were MIPS and DEC Alpha implementations of Windows NT that added to the story.Īnd what about all the new things that have come along since that article? 64-bit Windows introduces its own variation of the Portable Executable (PE) format. Windows NT® was still at version 3.5, and the linker gurus at Microsoft hadn't yet started getting aggressive with their optimizations. This was the abomination that ran Win32 binaries very shakily atop Windows 3.1.īack then, Windows 95 (codenamed "Chicago" at the time) wasn't even released. Another welcome departure from the scene is Win32s®. Since 16-bit Windows® is history, there's no need to compare and contrast the format to the Win16 New Executable format. Let me give you just a few examples of what has changed since I wrote the article in 1994. In addition, I have some goodies in this article that don't seem to appear in any official Microsoft documentation. My focus in this article will be to explain the most relevant parts of the story, while filling in the hows and whys that don't fit neatly into a formal specification. However, like most specs, it sacrifices readability for completeness. Sure, you could learn a lot of what I'll tell you by reading the Microsoft specification. By understanding what's in your EXEs and DLLs, you'll find that you've become a better programmer all around. The answer is the same now as it was then: an operating system's executable format and data structures reveal quite a bit about the underlying operating system. You might be wondering why you should care about the executable file format. I'll remedy that situation in a two-part article starting this month.

The world of Win32® has changed quite a bit in the intervening years, and the article is severely dated. Unfortunately, the problem with articles is that they're static. To this day, I still hear from people (even within Microsoft) who use that article, which is still available from the MSDN Library. The article, " Peering Inside the PE: A Tour of the Win32 Portable Executable File Format," turned out to be more popular than I had expected. Long time ago, in a galaxy far away, I wrote one of my first articles for Microsoft Systems Journal (now MSDN® Magazine). An appendix includes lists of the relevant image header structures and their descriptions. NET, PE file sections, RVAs, the DataDirectory, and the importing of functions. This article, the first of a two-part series, looks at the changes to the PE format that have occurred over the last few years, along with an overview of the format itself.Īfter this update, the author discusses how the PE format fits into applications written for. If you know what's in your DLLs and EXEs, you'll be a more knowledgeable programmer. SUMMARY A good understanding of the Portable Executable (PE) file format leads to a good understanding of the operating system.
#OLD FILE TURNED INTO EXE FILE MAC CODE#
This article assumes you're familiar with C++ and Win32Ĭode download available from the MSDN Code Gallery Inside Windows An In-Depth Look into the Win32 Portable Executable File Format
