Получение заголовка ELF основного исполняемого файла

Для различных целей я пытаюсь получить адрес 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;
}
11
задан 小太郎 16 January 2012 в 04:48
поделиться