如何在二进制执行期间挂钩所有linux系统调用

我试图修改linux系统调用的默认行为.目前我正试图在实际调用它们之前挂钩并添加一个简单的print语句.我知道GCC链接器的标准wrap选项以及它如何用于挂钩包装器Link to GCC Linker options.这完全适用于open(),fstat(),fwrite()等(我实际上挂钩了libc包装器).更

链接到多个库,其中一个包装了一组系统调用

所以这就是我正在关注的场景:我有3个库 – A,B和C.库A实现函数foo()并将其公开为API.函数foo()调用POSIX write()调用来写一些数据.库B使用linker -wrap选项将包装器写入write()glibc调用.库C链接到A和B.库C进行的任何write()调用都将被包装器拦截库B.但是,我

c – 如何知道一个共享库是否依赖于另一个共享库?

我写了一个名为“libmyssl.so”的共享库,我在我的代码中使用了一些openssl函数,make文件如下所示: g++ -v -shared -lz -lssl -lcrypto -Wl,-soname,libmyssl.so.1,-o libmyssl.so.1.0 myssl.o 之后,我使用ldd命令查看它是否依赖于libssl.so:

linux – 来自便利库的符号未在可执行文件中导出

我有一个程序,myprogram,它与一个静态便利库链接,称之为libconvenience.a,它包含一个函数func().在myprogram中的任何地方都不调用函数func();它需要能够从插件库plugin.so中调用.符号func()未在myprogram中动态导出.如果我跑nm myprogram | grep func 我一无

返回顶部