PLT(プロシージャリンケージテーブル)とは
ぴーえるてぃー
共有ライブラリの関数を呼ぶための小さな入口を並べた表。遅延束縛では、最初の呼び出しで動的リンカが番地を解決してGOTに書き込む。
この用語の分野: リンカ・ローダと実行形式
ぴーえるてぃー
共有ライブラリの関数を呼ぶための小さな入口を並べた表。遅延束縛では、最初の呼び出しで動的リンカが番地を解決してGOTに書き込む。
この用語の分野: リンカ・ローダと実行形式
プログラムは外部の関数をPLTの小さな入口を通して呼びます。
動的リンクで、PLT(プロシージャリンケージテーブル)を使った遅延束縛(レイジーバインディング)を行う場合の説明として…動的リンクなら、PLTの入口を指すように書き換え、実際のライブラリ関数の番地は実行時に動的リンカがGOTに入れます。
オブジェクトファイルを逆アセンブルすると、外部の関数printfを呼ぶ命令の飛び先が0のように仮の値になっていた。この…共有ライブラリの公開されたシンボルは、ほかのモジュールの同じ名前の定義に差し替えられる可能性があるので、内部からの呼び出しもPLTやGOTを通す必要があります。
共有ライブラリを作るとき、外から使う関数だけを公開し、内部の関数はシンボルの可視性(visibility)を「hidd…動的リンカ GOT(グローバルオフセットテーブル) 動的リンク オブジェクトファイル 再配置 リンカ 共有ライブラリ ABI(アプリケーションバイナリインターフェース) 位置独立コード ASLR