可执行文件中的C访问符号(linux)

时间:2017-12-11 21:07:11

标签: c linux symbols

我有一个带有许多符号的可执行二进制文件。我试图弄清楚如何在我的代码中访问这些符号。 dbg可以让我知道它可能我只是不确定如何。我无法使用“gcc -shared -o myexe.so myexe”从中创建共享对象,因为同一函数有多个定义

...(.data+0x8e8): first defined here
/usr/bin/ld: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored.
/usr/bin/ld: error in fipstest(.eh_frame); no .eh_frame_hdr table will be created.
/usr/bin/ld: fipsttest.so: No symbol version section for versioned symbol `NSSUTIL_ArgGetLabel@@NSSUTIL_3.14'
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status

这意味着gcc在编译期间无法使用-L链接到它,因为同样的问题。 nm命令显示所有符号和我想要的符号。如果我可以修改符号表以删除所有导出但我需要的那个然后它可能会工作,但我找不到如何做到这一点。或者,如果有人能指出我在正确的方向上在运行时访问二进制文件并加载一个物理地址也可以工作的函数。任何帮助表示赞赏。谢谢。

0 个答案:

没有答案