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