gpt4 book ai didi

linux - 我如何从 ELF 文件中挂接 c 函数,该文件在 Linux 中使用库 .so?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:45:43 26 4
gpt4 key购买 nike

我有可执行的 ELF 文件,它使用库 lib.so,这个 ELF 从 lib.so 调用函数 Func1

我需要 Hook 这个函数,所以它会被我的函数替换,做其他事情。如何在不更改此可执行文件的情况下执行此操作?

最佳答案

看看LD_PRELOAD .该环境变量可以设置为一个 elf 共享对象,它将被注入(inject)到您的可执行文件的地址空间中。该预加载对象中的函数可以替换其他对象中的函数。在您的情况下,只要 lib.so 未构建 -Bsymbolic,它就可以工作。符号链接(symbolic link)器选项解析链接传递中的内部调用。所以,如果 lib.so 包含并调用 func1 并且构建为 -Bsymbolic,那么替换该调用就非常棘手,您可能最终不得不更改 lib.so .

关于linux - 我如何从 ELF 文件中挂接 c 函数,该文件在 Linux 中使用库 .so?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46287996/

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