9
|
R.. GitHub STOP HELPING ICE · 技术社区 · 14 年前 |
![]() |
2
2
|
![]() |
3
1
所以,我似乎有类似的用例,但我明确地发现对现有二进制文件的任何修改都是不可接受的(对我来说),所以我正在寻找独立的代理方法: Proxy shared library (sharedlib, shlib, so) for ELF? |
![]() |
4
0
你可以处理程序本身的一些动态链接。请特别阅读dlsym(3)的手册页,并阅读动态链接接口其余部分的dlopen(3)、dlerror(3)和dlclose(3)。 一个简单的例子——比如我想重写libc中的dup2(2)。我可以使用以下代码(我们称之为“dltest.c”):
静态链接的dup2()函数重写库中的dup2()。即使该函数位于另一个.c文件中(并作为单独的.o编译),也可以执行此操作。 如果重写函数本身是动态链接的,则可能希望使用dlopen()而不是信任链接器以正确的顺序获取库。 编辑 :我怀疑,如果重写库中的其他函数调用重写函数,则会调用原始函数,而不是重写。我不知道如果一个动态库调用另一个动态库会发生什么。 |
![]() |
AnkurVj · 是否可以使用LD_PRELOAD覆盖主方法? 10 年前 |
![]() |
serhatg · g++同时链接静态和非静态库 10 年前 |
|
Syf Illis · 针对共享库创建链接静态库 10 年前 |