とはLD_PRELOADトリック?
-
06-07-2019 - |
解決
設定した場合 LD_PRELOAD
のパスの共有オブジェクト、ファイルの読み込まれ 前 その他の図書館を含むCランタイム時において、 libc.so
).な行 ls
とを特 malloc()
実装は、この:
$ LD_PRELOAD=/path/to/my/malloc.so /bin/ls
他のヒント
をオーバーライドすることができ記号を株式図書館による作成図書館と同じ符号を指定する図書館 LD_PRELOAD
.
一部の人々はこれを指定の図書館以外の場所で LD_LIBRARY_PATH
よその目的のために
と LD_PRELOAD
ことができ図書館が優先されるものとします。
たとえば、あまり書図書館を実施 malloc
や free
.および負荷によること LD_PRELOAD
ご malloc
や free
実行されることになりより標準です。
多くの人が教えてくれたのは、 LD_PRELOAD
をプリロード図書館があります。ちなみき チェック 場合に設定が可能で ldd
コマンドです。
例:仮に必要なものプリロードをご libselinux.so.1
.
> ldd /bin/ls
...
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007f3927b1d000)
libacl.so.1 => /lib/x86_64-linux-gnu/libacl.so.1 (0x00007f3927914000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f392754f000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007f3927311000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f392710c000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3927d65000)
libattr.so.1 => /lib/x86_64-linux-gnu/libattr.so.1 (0x00007f3926f07000)
このように、プリロード環境:
export LD_PRELOAD=/home/patric/libselinux.so.1
チェックリしてもらうことを目的として
>ldd /bin/ls
...
libselinux.so.1 =>
/home/patric/libselinux.so.1 (0x00007fb9245d8000)
...
LD_PRELOAD
リスト共有ライブラリの機能とオーバーライドを標準設定として /etc/ld.so.preload
います。これらの実施により、ローダー /lib/ld-linux.so
.したい場合にオーバーライドで選択した機能は、これを実行する事ができます。を覆すオブジェクトファイルおよび設定 LD_PRELOAD
;の機能をこのオブジェクトファイルオーバーライドでこれらの機能の退職その他られています。
のための情報共有ライブラリを訪問 http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html
での輸出 mylib.so
にenv:
$ export LD_PRELOAD=/path/mylib.so
$ ./mybin
を無効にする:
$ export LD_PRELOAD=
ここでは詳細なロプリロード:
を使用 LD_PRELOAD
パスまでの申請ローダへの負荷を提供する共有オブジェクトのデフォルトの提供する。
開発者はこのデバッグその応用の提供により異なるバージョンの共有オブジェクト。
を使用していますのでハッキングの用途では、オ既存の機能を備共有オブジェクト。
時LD_PRELOADを使用するファイルがロードされる前に、その他
$export LD_PRELOAD=/path/lib
lib前にロードでも、こで使用できるプログラムも