繁体   English   中英

使用LLVM的可执行文件的动态符号解析

[英]Dynamic Symbol Resolution of Executable Using LLVM

我目前正在使用LLVM's ObjectFile此处记录 )来表示可执行文件。 我已成功读入ObjectFile的可执行文件,并希望确定我的可执行文件中的哪个调用目标地址对应于通过调用begin_dynamic_symbols()函数获得的symbol_iterator包含的符号名称。 迭代symbol_iterator的每个符号给出了每个符号的名称及其地址,但由于符号是动态的,因此每个符号的地址为-1; 这表示ObjectFile不直接将符号名称与其对应的调用目标地址相关联。

有没有办法确定哪个呼叫目的地地址映射到ObjectFile中的哪些动态符号? 如果我可以避免这样做,我宁愿不通过PLTGOT手动计算所有跳跃。

动态符号的地址仅在目标文件加载到内存并链接到程序的符号表时计算。 通常,在链接之前无法确定其最终地址。

您可以使用LLVM的链接时优化模块而不是ObjectFile来获取所需的数据,因为如果我没记错的话,它在加载模块时会执行地址链接。

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM