У меня следующий вопрос:
Когда в программах указывается адрес общих объектов? Во время связывания? Загружается? Если бы я хотел найти адрес памяти команды system
внутри libc
внутри моей программы, я мог бы легко найти его в gdb
, но что, если я не «Не хотите переносить программу в отладчик?»
Может ли этот адрес измениться от запуска к запуску? Есть ли какой-либо другой инструмент статического анализа, который позволит увидеть, где библиотеки или функции будут загружены в область памяти этой программы при запуске?
РЕДАКТИРОВАТЬ: Мне нужна эта информация вне программы (то есть с использованием таких утилит, как objdump
для сбора информации)