如何在运行时获取 elf .symtab 的指针?

问题描述

我需要通过解析进程的内存来访问 .symtab 符号表。

目前,我的算法是:

  1. 获取动态段(程序的头部 p_type == PT_DYNAMIC)并跟随 p_vaddr
  2. 在此动态部分中搜索 DT_SYMTAB d_tag 并从 +4 偏移量 (d_ptr) 中获取 ptr,这应该是我们实际的 .symtab 符号表。

但是,由于某种原因,我收到了 .dynsym,而不是 .symtab,这是通过比较从 readelf -Ws 检索到的符号名称和其他信息来证明的。

那么,如何获得实际的 .symtab ptr? 谢谢。

作为参考,我正在使用:

  1. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#Program_header
  2. http://labmaster.mi.infn.it/Laboratorio2/CompilerCD/clang/l1/ELF.html

感谢更多好资源。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)