MyUtils

View on GitHub

LD系機能についてまとめる

LD系の環境変数は覚えておくと楽なのでメモっておく

共有ライブラリを差し替える(LD_PRELOAD)

//NOTE: 以下のようにすることで、共有ライブラリを指定できる
LD_PRELOAD=./libHoge.so  fuga.exe 

ld-linux.soの動作を確認する(LD_DEBUG)

  1. symbols設定することで、シンボル解決の様子が確認できる

     LD_DEBUG=sysbols  XXX.exe
    
  2. 他の機能 man ld-linux.soで他有用なオプションを確認できる。 全ての出力を見る場合、LD_DEBUG=allを実行する

監査機能を使う(LD_AUDIT)

ld-linux.soがシンボルをbindしたときやPLTエントリ内の関数が呼び出された時にユーザが登録したコールバックを呼び出せる。 つまり、事前に作成したライブラリで登録するためのコールバックを作成する必要がある。

// 例
LD_AUDIT=libHoge.so xxx.exe
LD_AUDIT=libHoge.so LD_LIBRARY_PATH=. xxx.exe

//後日サンプルを作成する。