.got
部分,找到重定位部分.got
/ .rel.plt
,其.rela.plt
包含.sh_info
的索引,并找到包含符号名称的符号部分.got
。这些部分之间的所有行都很好地对齐,我可以为.dynsym
中的条目准确分配符号名称。 但是,我也希望在
.got
部分中提供存根的名称。可以根据.plt
符号的顺序以及与.plt
部分底部的偏移量推断出时间大致百分比。无论出于何种原因,有时情况并非如此。Binutils.got
可以为x86准确生成它们,而IDA可以为x86和ARM准确生成它们(都没有.plt
调试符号)。这些是如何产生的?在IDA的情况下,我可以合理地假设基于对
objdump
中指令的解释会发生一些高级逻辑,但是我知道对于-g
一定不是这种情况。#1 楼
看到这个线程。基本上,它们依赖于PLT重定位的顺序与.plt
部分中存根的顺序匹配,并且存根的大小都相同的事实。动态符号表中的符号条目。IDA实际上通常不依赖符号/重定位的顺序,而是检查存根中的实际指令。