gpt4 book ai didi

c - Sprite 。隐藏已链接 DSO 的导出符号

转载 作者:太空宇宙 更新时间:2023-11-04 03:18:20 25 4
gpt4 key购买 nike

我有一个已经编译/链接的 DSO 文件,它导出了一些确实必须隐藏的函数。当我尝试将我的代码链接到该库时 - 它会选择那些不需要的符号而不是我自己的符号。我无权访问源代码,因此我无法重建二进制文件并为不需要的内容使用适当的可见性属性。

我在这里看到唯一的解决方案 - 将不需要的符号的可见性从 GLOBAL 直接以二进制形式更改为 HIDDEN。进行此类更改的明显工具是 objcopy,但问题是 objcopy 没有修改动态符号表的选项,它只能处理常规符号表。

那么有人知道哪个工具可以让我更改动态符号表中符号的可见性吗?

最佳答案

如果你想改变符号的绑定(bind)方式,你应该使用audit modules .这样,您就不必为磁盘上的文件打补丁。

但是,根据您的描述,尚不清楚这是否真的有必要。使用正确的链接顺序,您的新符号定义将自动插入现有符号定义(无需审计模块)。如果这不是您想要的,您应该考虑重命名您的符号,以避免名称冲突。

关于c - Sprite 。隐藏已链接 DSO 的导出符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49200436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com