我需要为 dlsym() 和 dlopen() 系统调用实现挂钩。为了从钩子中调用原始的 dlsym(),我需要获取这个系统调用的地址。我尝试在 so-library-constructor-function 中获取地址。但我只得到钩子函数的地址。我尝试将处理程序指定为 RTLD_DEFAULT 以及 RTLD_NEXT。使用 RTLD_DEFAULT 时,我得到 NULL。使用 RTLD_NEXT 时,我得到了钩子函数的地址。dlopen() 出于同样的原因我不能使用,因为我在 dlopen() 上有了钩子。
请告诉我,我怎样才能得到原始 dlopen() 和 dlsym() 函数的地址?
谢谢。