Я работаю с файловыми анализаторами файлов pe, такими как exeinfoPe, и в разделе списка разделов есть как .text, так и типы разделов CODE, которые мы можем использовать их, например, изменить .data name на .text или CODE или других разделов. эти разделы одинаковы? в чем разница между ними?Разница между .text и .код раздел name
ответ
Не существует функциональной разницы между разделами двоичного кода и .code
.
Почти во всех случаях они полностью синонимов (что означает, что они относятся к одной и той же секции), но даже если они не (например из-за фактический порядок сечений в двоичном), они семантически идентичный.
Это раздел объектного файла или адресного пространства, которое содержит исполняемые инструкции («код»), которые хранятся как обычный текст («текст»). Он почти всегда доступен только для чтения, в отличие от раздела .data
.
Обратитесь к документации для вашего ассемблера, компилятора, компоновщика или дизассемблера, чтобы узнать, какое имя оно предпочитает. Формат PE использует .text
.
Как инструкции могут быть доступны для записи? Если бы это был сигнал серьезной уязвимости системы, не так ли? Кто-то может ввести свой код в секцию .code? Это возможно? Не могли бы вы рассказать об этом? Благодарю. –
Не существует смысловой разницы между разделами .CODE
и .TEXT
. Как и в ассемблере MASM
, адрес пространства с инструкциями указан в разделе .CODE
, а в других компиляторах указан .CODE
.
Поэтому, когда вы собираете свой код с MASM
, вы увидите раздел .CODE
, а также .TEXT
.
См. Раздел [сегмент кода] (https://en.wikipedia.org/wiki/Code_segment) и [сегмент данных] (https://en.wikipedia.org/wiki/Data_segment). Иногда они могут быть одинаковыми. –
Я верю, что вы говорите об именах разделов, а не о флажках. Есть некоторые общие названия разделов, но они не требуются. То, что на самом деле является флагом (например, исполняемым или доступным для записи). – Jester
Да, я был неправ. спасибо за ваш ответ и напоминание. Я исправляю вопрос. @Jester –