Я пытаюсь получить доступ к "структуре рандеву" (struct r_debug *), чтобы найти карту ссылок процесса.Но я продолжаю сталкиваться с недействительными адресами и действительно не могу понять, что происходит.
Вот как я продолжаю пытаться найти его:
1. Get the AT_PHDR value from the auxiliary vector
2. Go through the program headers until I find the PT_DYNAMIC segment
3. Try to access the vaddr of that segment (PT_DYNAMIC) to get the dynamic tags
4. Iterate through the dynamic tags until I find DT_DEBUG. If I get here I should be done
Проблема в том, что я могу 'Пройдите шаг 3, потому что vaddr сегмента PT_DYNAMIC всегда указывает на неверный адрес.
Что я делаю не так?Нужно ли найти перемещение vaddr?Я посмотрел источники LLDB, но не могу понять, как они получили адрес.
ОБНОВЛЕНИЕ: @EmployedRussian был прав, я искал независимый от позиции исполняемый файл.Его решение для расчета перемещения прекрасно сработало.