5

dlsym() および dlopen() システムコールのフックを実装する必要があります。フックから元の dlsym() を呼び出すには、この syscall のアドレスを取得する必要があります。so-library-constructor-function でアドレスを取得しようとしています。しかし、フック関数のアドレスしか取得していません。RTLD_NEXTだけでなく、RTLD_DEFAULTもハンドラとして指定してみました。RTLD_DEFAULT を使用すると、NULL が返されます。RTLD_NEXT を使用すると、フック関数のアドレスを取得します。dlopen() dlopen() にフックがあるため、同じ理由で使用できません。

元の dlopen() および dlsym() 関数のアドレスを取得する方法を教えてください。

ありがとう。

4

1 に答える 1

3

__libc_dlsym()dlsym()libc によって提供されるものです。dlopen()には、対応するものがあり__libc_dlopen()ます。

于 2012-11-07T21:37:40.383 に答える