Вы хотите прочитать заголовок PE, а затем прочитать IMAGE_OPTIONAL_HEADER и прочитать поле с именем «Magic». Волшебное поле будет иметь следующие значения:
- 0x010b 32-битный PE-файл
- 0x020b 64-битный PE-файл
- 0x0107 Файл образа ПЗУ (на практике вы вряд ли когда-либо увидите это значение)
Более подробную информацию можно найти в .Net 2.0 IL Assembler, глава 4, в которой подробно описывается формат PE.
Если вам нужна библиотека чтения файлов PE (с исходным кодом) и графический интерфейс пользователя, который использует DLL (с источником), взгляните на Файл формата файлов PE . Его открытый исходный код с любым обременением GPL. Используйте программное обеспечение по своему усмотрению (закройте его, если это соответствует вашим потребностям).