It's a "portable executable" file. It's basically a file format MS
invented quite a while ago for exes and dlls, and .NET assemblies are
in the same format.
A: "PE" stands for "portable executable". The term "Portable
Executable" was chosen because the intent was to have a common file
format for all flavors of Windows, on all supported CPUs. A PE file is
a 32 bit executable developed by Microsoft for NT (and W9x). The other
notable executable types that run on MS platforms are "MZ" (DOS), "NE"
and "LE" - but those formats are obsolete (but they will still run).
Open an exe file in a hex editor or binary viewer and the first two
values in the file will be 'MZ' - yes the DOS header is still there.
Scan down 128 bytes and you should find the values 'PE' - this is
where the PE format takes over.