LINUX.ORG.RU

Можно.

anonymous
()

можно, если осторожно

dilmah ★★★★★
()

Спасибо отцы.
Как мне сделать аналог EXPORT_SYMBOL ?!
прочитать какие функции есть в таблице ?
Добавить туда свои ?

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

Указатель, возвращаемый dlopen - это указатель на структуру link_map.

Вот так она примерно выглядит:

struct link_map = {
Elf32_Addr l_addr;
char *l_name;
Elf32_Dyn l_ld;
link_map *l_next;
link_map *l_prev;
};

Надо пройтись по l_ld и найти элемент с l_ld->tag == DT_HASH (хэш-таблица). Из этой таблицы взять 2-й элемент - это и есть указатель на symbol table.

Все подробности - в мануале по формату ELF (Executable and Linkable Format).


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

хм... а я почему-то считал, что /proc/pid/mem :) ошибся...

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

>Могу я редактировать таблицу запущенного процесса из него же?

Можете :) Только за последствия никто не отвечает.

BWT, для редактирования как минимум потребуется сделать mprotect(PROT_WRITE) этой памяти.

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