我目前正在使用LLVM's
ObjectFile
(在此处记录)来表示可执行文件。我已成功读入可执行文件,ObjectFile
并想确定可执行文件中的哪些调用目标地址对应于symbol_iterator
通过调用begin_dynamic_symbols()
函数获得的符号名称。遍历 中的每个符号symbol_iterator
会得到每个符号的名称及其地址,但由于符号是动态的,因此每个符号的地址都是 -1;这表明ObjectFile
不直接将符号名称与其对应的呼叫目标地址相关联。
有什么方法可以确定哪些呼叫目标地址映射到 中的哪些动态符号ObjectFile
?我宁愿不手动计算所有的跳跃PLT
,GOT
如果我可以避免这样做的话。