私は一般的なプログラム メモリ レイアウト (つまり、テキスト セグメント、データ セグメント、ヒープ、スタックなど) に精通しており、次の説明と図に似たものを見つけようとしています。
http://www.tenouk.com/Bufferoverflowc/Bufferoverflow1c.html
ただし、それぞれが外部ライブラリの使用を伴う 3 つの異なるケースを見つけようとしています。
- ビルド時の外部ライブラリの静的リンク (つまり
libtest.a
、 内ldflags
) - ビルド時の外部ライブラリの動的リンク (つまり
libtest.so
、 内ldflags
) - 実行時の外部ライブラリの動的リンケージ (つまり:
libtest.so
ではなくldflags
、ライブラリはdlopen()
/dlsym()
呼び出しを介してロードされます)
これに詳しい人がメモリレイアウトを説明してくれますか? 私が特に興味を持っているのは、 case(2)
と(3)
.
ありがとうございました。