タグ

elfに関するosamunixのブックマーク (3)

  • lsso - 実行ファイルが必要とする共有ライブラリをチェックする(特にクロスコンパイル環境で) - spikelet days

    目的 ある実行ファイルの動作に、どの共有ライブラリが必要かを把握したい。 ストレート環境であれば /bin/ldd を使えば良い(BINARY HACKS, HACK #7 を参照)のだが、クロス環境だと一々実行するのが面倒臭い。 一括で、必要なライブラリ一覧を得る方法は無いか。 結果 readelfを使って、elf の dynamic section から SONAME と NEEDED を抜き出して、依存関係を(再帰的に)把握するスクリプトを作成した。 lsso https://sssvn.jp/svn/spikelet/utils/lsso 依存関係といえば有向グラフ、有向グラフといえばGraphviz(Graphviz - Graph Visualization Software)なので、Graphviz形式での出力も可能にした。 実行例は、詳細の最後の辺を参照。 以下、詳細。 背

    lsso - 実行ファイルが必要とする共有ライブラリをチェックする(特にクロスコンパイル環境で) - spikelet days
  • オブジェクトファイルについて

    はじめに Binary Hacks の校正大会にて、あーセクションの話が少し説明不足で不親切だね、っていう話が出ました。あった方がいいかな、と思ったので、宣伝を兼ねて、ここに私が知っていることを書いておきます。 内容としては、 Binary Hacks に比べてかなりいい加減に書いています。例えば調べものは一切せずに書きます。著者の中で最もいい加減な私がよりもいい加減に書いたということで、 Binary Hacks の全ての文章はこれよりはレベルが上、というようなサンプルだと思って下さい。宣伝を兼ねるということで、これ単体ではフォローせずに Binary Hacks のここを見てね、というポインタだけ示す部分が多いです。『』で囲まれた文字列は Binary Hacks の中のハック名に対応しています。 書いてる最中なので、気が向いたら内容を追加します。 詳しい参考文献としては Linke

  • KernelのObject構造

    Headerを解析するために、内容をダンプして値を調べていたのでは日が暮れてしまう。世の中には、Headerを解析して見やすい形に整形してくれるobjdumpとreadelfコマンドという便利なツールがある。これらのツールは、OSインストール時(少なくともBSD系のOSでは)には、既にインストールされているので、新たにインストールせずともお手軽に使える。 bjdumpコマンドは、object fileの内容をダンプしたり、アセンブラのニーモニックに変換してくれたりする。それ以外にも、object fileのHeaderを読んで画面上に表示する機能もある。ELF形式だけでなく、aout形式のobject formatにも対応している。 頻繁に使われるオプションとして次のものが挙げられる -x : 全てのHeader内容を表示する -d : 実行可能 sectionの内容をassemblerす

  • 1