LINUX.ORG.RU

Получить адреса начала и конца основных сегментов + стек исполняемого файла

 , , , ,


0

2

Здравствуйте, подскажите пожалуйста как из программы получить информацию про саму же себя. То есть адреса основных сегментов (кода,данных..). Пробовал различные способы, но все таки не очень то и совпадает. Отрыл какие-то переменные внешнее. extern char etext, edata, end; Результат схожий, но не полностью при сравнении с objdump. Со стеком вообще не придумал как получить адреса начала и конца. Пробовал просто начало и конец локальных переменных, но это бред, так как еще кроме этого много инфы там хранится (возврат и т.д). Подскажите пожалуйста как правильно получить данные адреса. Спасибо заранее.


Ответ на: комментарий от anonymous

Со стеком все таки подскажите пожалуйста как сделать

CROSP ()
Ответ на: комментарий от CROSP

Выше дали ссылку, но лучше вычитывать /proc/self/stat, поля start_{code,data,brk,stack} соответственно стартовые адреса кода,данных,хипа и стека.

anonymous ()

В kernelspace можно GDT найти и по селектору в ds cs ss bs ... найти адреса

energyclab ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.