2015-07-01 3 views
-1

Какие разделы (.data, .rodata, .bss и т. Д.) Могут использоваться для хранения указателей в исполняемом элементе ELF для Linux и других поддерживающих ОС ELF?В исполняемом файле ELF, какие разделы могут содержать указатели?

Edit: указателями Я имею в виду указатели типа C, как void* pointer = some_address;

+0

Вы должны определить, что вы подразумеваете под указателями в своем вопросе, так как это намного сложнее (в контексте ELF) то, во что вы верите. –

+0

Ваше редактирование не означает многого (отсюда и мой downvote). Вы действительно должны больше узнать об ELF. Начните с его wikipage в [Исполняемый и связанный формат] (https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) и [Перемещение] (https://en.wikipedia.org/wiki/Relocation_%28computing%29). Прочитайте книгу Левина [* Линкеры и погрузчики *] (http://www.iecc.com/linker/) –

ответ

2

Какие разделы (.data, .rodata, .bss и т.д.) могут быть использованы для хранения указателей в ELF исполняемый

Это домашнее задание? Если нет, чего вы действительно пытаетесь достичь?

Каждый из .data, .rodata и .bss может хранить указатели. Так может .text. ELF допускает произвольно названные разделы, поэтому полный список разделов, который может хранить указатели, невозможно (потому что он бесконечен).

+0

Это не домашнее задание. Я намереваюсь выяснить, могут ли указатели храниться в основном только для чтения, но затем я решил спросить и о других двух разделах. – zeitue

+1

@zeitue Итак, теперь вы знаете, что указатели могут быть * в любом месте *. Каким образом это поможет вам? Что вы на самом деле пытаетесь достичь? –

+0

Это означает, что я собираюсь сделать компенсацию за это. Я пытаюсь достичь универсального формата, и я нашел указатели в качестве основной проблемы. Спасибо за ответ – zeitue

Смежные вопросы