Форум — Development Symbol table 0 0 Можно ли из процесса, прочитать или отредактировать его symbol table ? Ссылка
типа, поправить exe file? или память? Valeriy_Onuchin ★★ (04.10.07 17:39:22 MSD) Показать ответ Ссылка
Спасибо отцы. Как мне сделать аналог EXPORT_SYMBOL ?! прочитать какие функции есть в таблице ? Добавить туда свои ? ppiitt (04.10.07 18:25:47 MSD) автор топика Ссылка
Ответ на: комментарий от Valeriy_Onuchin 04.10.07 17:39:22 MSD паямять ppiitt (04.10.07 18:46:37 MSD) автор топика Ссылка
Для примера чтения symbol table можно посмотреть сорцы вот этой утилиты: http://packages.debian.org/unstable/devel/pstack . wtfbbq (05.10.07 00:51:29 MSD) Показать ответ Ссылка
Ответ на: комментарий от wtfbbq 05.10.07 00:51:29 MSD Забыл упомянуть, что читают там из памяти запущеного процесса. wtfbbq (05.10.07 00:53:58 MSD) Показать ответ Ссылка
Ответ на: комментарий от wtfbbq 05.10.07 00:53:58 MSD К сожалению, читают там вот отсюда /proc/{util_pid_num}/exe exe - ссылка на файл :) ppiitt (05.10.07 09:56:47 MSD) автор топика Показать ответы Ссылка
Ответ на: комментарий от ppiitt 05.10.07 09:56:47 MSD Указатель, возвращаемый 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_ ★ (05.10.07 12:34:14 MSD) Показать ответ Ссылка
Ответ на: комментарий от jek_ 05.10.07 12:34:14 MSD Спасибо. Могу я редактировать таблицу запущенного процесса из него же ? ppiitt (05.10.07 13:07:08 MSD) автор топика Показать ответ Ссылка
Ответ на: комментарий от ppiitt 05.10.07 09:56:47 MSD хм... а я почему-то считал, что /proc/pid/mem :) ошибся... wtfbbq (05.10.07 14:21:47 MSD) Ссылка
Ответ на: комментарий от ppiitt 05.10.07 13:07:08 MSD >Могу я редактировать таблицу запущенного процесса из него же? Можете :) Только за последствия никто не отвечает. BWT, для редактирования как минимум потребуется сделать mprotect(PROT_WRITE) этой памяти. jek_ ★ (05.10.07 15:01:19 MSD) Показать ответы Ссылка
Ответ на: комментарий от jek_ 05.10.07 15:01:19 MSD Спасибо ! Что такое BWT ?! :) ppiitt (06.10.07 20:42:46 MSD) автор топика Ссылка
Ответ на: комментарий от jek_ 05.10.07 15:01:19 MSD и если можно, объясните поконкретнее как мне действовать ?! :) ppiitt (06.10.07 20:44:01 MSD) автор топика Показать ответ Ссылка
Ответ на: комментарий от ppiitt 06.10.07 20:44:01 MSD Прочитать мануал по ELF для начала: http://x86.ddj.com/ftp/manuals/tools/elf.pdf jek_ ★ (08.10.07 07:31:51 MSD) Ссылка