Что такое раздел кода? - PullRequest
       1

Что такое раздел кода?

0 голосов
/ 01 марта 2012

В каком контексте применяются термины code section, data section?Это часть процесса Win32 или часть переносимого exe-файла Windows?В C указатель функции ссылается на адрес в разделе кода?

Ответы [ 2 ]

2 голосов
/ 01 марта 2012

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

Каждый раздел может иметь определенные флаги, описывающие, какой тип доступа он имеет.Обычно раздел данных может иметь права на чтение / запись, но не иметь права на выполнение, тогда как раздел кода может иметь права на чтение / выполнение, но не имеет права на запись.Для разделов кода существуют общие имена, такие как .text, но нет ничего обязательного, что раздел должен быть назван так.Фактически, некоторые агрессивные исполняемые упаковщики будут удалять имена разделов.

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

1 голос
/ 01 марта 2012

Вы должны прочитать статью в Википедии о формате Portable Executable (Window .EXE) .В частности, раздел Layout .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...