Linuxでは、/ proc / $ PID / pmapsを調べて特定のプログラムによってロードされたライブラリを確認でき、プログラムは/ proc / self/pmapsを開いて自分自身がロードしたライブラリを確認できます。
pmapにはダイナミックライブラリのみが含まれることはわかっています。カーネルは、後でdlopenする可能性のあるライブラリを予測できないため、それらは/ proc / self/mapsに含まれないと思います。しかし、他のいくつかのシナリオがわかりません。
ビルド時にリンクされているが、まだ関数を呼び出していないライブラリは含まれていますか?私の理解では、Linuxはシンボルのリンクを最初に使用するまで遅らせるので、シンボルが表示されるかどうかはわかりません。
pmapには、再帰的に使用されるすべてのライブラリが含まれていますか?たとえば、pmapで各ライブラリを確認し、その上でlddを実行してから、それらに対してlddを実行すると、元のpmapになかった新しいライブラリが見つからないはずです。私はこれをいくつかのバイナリで試しましたが、そうであるように見えますが、運が良かったのかもしれません。