我的一个程序遇到了困难。我需要能够判断何时执行CALL,以及调用地址链接到的函数符号。
我理解使用我自己的函数我需要解析我的elf二进制文件的.symtab部分,但链接到共享库的符号没有任何地址。
我还解析了.dyndsym .rela.dyn .rela.plt和.dynstr部分。有了这么多信息,我现在知道哪个函数与哪个库有关。
据我所知,共享对象中给出的函数地址与二进制文件中的函数地址不同。我的所有程序(用C编写)都使用选项" -fno-stack-protector"编译。
我的问题是:在执行二进制文件之前有没有办法计算动态符号的地址?