Для различных целей я пытаюсь получить адрес ELF-заголовка основного исполняемого файла без анализа / proc / self / maps
]. Я попытался разобрать цепочку link_list
, заданную функциями dlopen
/ dlinfo
, но они не содержат записи, где l_addr
указывает на базу адрес основного исполняемого файла. Есть ли способ сделать это (стандартный или нет) без анализа / proc / self / maps
?
Пример того, что я пытаюсь сделать:
#include <stdio.h>
#include <elf.h>
int main()
{
Elf32_Ehdr* header = /* Somehow obtain the address of the ELF header of this program */;
printf("%p\n", header);
/* Read the header and do stuff, etc */
return 0;
}