弄乱 ELF(x86 和 ARM 版本)。
将符号名称与该.got
部分中的条目相关联很简单。找到.got
节,找到重定位节.rel.plt
/.rela.plt
其.sh_info
包含 的索引.got
,并找到.dynsym
包含符号名称的符号节。
这些部分之间的所有内容都排列得很好,我可以准确地将符号名称分配给.got
.
但是,我还需要该.plt
部分中存根的名称。大致百分比的时间,.plt
可以根据.got
符号的顺序和与.plt
节的基部的偏移量推断出 的符号。无论出于何种原因,有时情况并非如此。
Binutilsobjdump
可以为 x86 准确生成它们,IDA 可以为 x86 和 ARM 准确生成它们(均无需-g
调试符号)。这些是如何产生的?
在IDA的情况下,我可以合理地假定有一些先进的逻辑会基于在说明解释.plt
,但我知道不能成为情况objdump
。