Что такое формат исполняемого файла Windows Portable?

Переносимый исполняемый файл Windows (PE) — это собственный формат Windows для исполняемых файлов и других типов двоичных файлов. Формат файла PE не зависит от платформы, поэтому его можно использовать на любой машине Windows с той же версией операционной системы и архитектурой процессора, для которых был скомпилирован файл.

Итак, давайте разберем формат файла Windows PE и узнаем о его структуре и составных компонентах.

Что такое переносимый исполняемый файл Windows?

ноутбук с кодом на экране

Перед изучением формата переносимых исполняемых файлов Windows важно прояснить основы. Давайте сделаем шаг назад и узнаем о базовой концепции Windows PE — COFF.

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)

Когда вы компилируете исходный код в программу, компилятор создает объектный файл (.obj). Этот объектный файл содержит инструкции для компьютера в двоичном формате.

COFF или Common Object File Format — это стандартизированный набор соглашений для представления двоичных инструкций. COFF помогает поддерживать кросс-платформенную совместимость, поскольку все форматы файлов COFF следуют одному и тому же набору правил и соглашений для организации кода и данных. Хотя COFF изначально разрабатывался для использования в системах *NIX, теперь он повсеместно используется на всех платформах.

Формат файла Windows Portable Executable (PE) является модификацией COFF и был разработан для использования исключительно в 32-разрядных и 64-разрядных системах Windows. В отличие от COFF, который предоставляет стандартный формат для объектных файлов, Windows PE предоставляет стандартный формат для исполняемых файлов и файлов библиотек.

Он содержит разделы и заголовки, которые предоставляют информацию о рассматриваемом исполняемом файле и помогают системному загрузчику управлять данными, связанными с исполняемым файлом. Заголовки в PE-файле помогают системному загрузчику отображать файл в памяти, разрешать зависимости, такие как экспорт/импорт API, управлять ресурсами и подготавливать файл к выполнению.

В Linux также есть собственная версия COFF; он называется исполняемым файлом ссылки или, короче, двоичным файлом ELF. Вы можете проверить, является ли файл ELF или нет, запустив команду file в Linux с именем файла в качестве первого аргумента.

Структура переносимого исполняемого файла Windows

Схема структуры переносимого исполняемого файла Windows

Формат переносимых исполняемых файлов состоит из нескольких компонентов, каждый из которых предназначен для определенной цели. Эти компоненты включают в себя:

  • Заголовки разделов, описывающие структуру и характеристики каждого раздела файла. Сами разделы, содержащие исполняемый код, данные и ресурсы.
  • Заголовок PE, предоставляющий информацию об общей структуре файла и требованиях.
  • Заголовок DOS, включающий небольшую программу, которая запускается при запуске файла в системе DOS.
  • И, наконец, заголовки разделов PE, описывающие расположение и атрибуты каждого раздела в файле.

В целом, эти компоненты работают вместе для создания структурированного формата, который позволяет операционной системе правильно загружать, выполнять и управлять исполняемым кодом, содержащимся в файле. Давайте узнаем, что именно делает каждый компонент.

Первая часть PE-файла называется заголовком DOS. Небольшой объем исполняемого кода хранится в заголовке DOS, который также можно запустить на машине с DOS.

Этот код также называется заглушкой MS-DOS и используется для выдачи сообщения об ошибке в системах, не поддерживающих PE-файл.

Заголовок Portable Executable предоставляет информацию об исполняемом файле, например, насколько велик файл, где расположены различные части и какие ресурсы требуются для исполняемого файла. Заголовок PE также содержит информацию о типе исполняемого файла, будь то файл Windows .DLL или .EXE.

Разделы реализованы для организации многих компонентов исполняемого файла, таких как код, данные и ресурсы, такие как текстовые строки, изображения и т. д. Заголовки разделов включают информацию о размере и расположении каждого раздела, а также любые связанные флаги.

Флаги, связанные с каждым заголовком раздела, могут указывать различные атрибуты раздела, например, является ли он исполняемым, доступным для записи или чтения. Эти флаги помогают операционной системе правильно загружать и управлять содержимым каждого раздела во время выполнения программы.

Разделы

Сами секции содержат реальный код исполняемого файла, данные и ресурсы. Каждый сегмент привязан к определенной границе памяти и имеет собственный набор атрибутов, влияющих на то, как операционная система его обрабатывает.

Теперь вы знаете все о формате исполняемого файла Windows Portable

Windows Portable Executable — это надежный и универсальный формат файлов, используемый для создания широкого спектра приложений и системных компонентов Windows. Понимая структуру формата файла PE, разработчики могут создавать эффективные приложения, использующие преимущества отличительных особенностей Windows.

Помимо глубокого понимания платформы, на которой будет работать ваше приложение, следуя нескольким стандартным рекомендациям по написанию кода, вы сможете максимизировать качество приложения независимо от платформы, на которой оно работает.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)