問題タブ [readelf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symbols - ストリップされていないライブラリの .init_array セクションで関数名を検索します
elf 動的ライブラリで静的初期化のすべてのインスタンスを見つけることは可能ですか? このような objdump コマンドを使用して、.init_array セクションに関数ポインターの配列をダンプできます。
これらの関数ポインタを関数名にマップする方法はありますか? デバッグ シンボルを含むライブラリをアンストリップしました。ライブラリの読み込み時間を改善するために、静的初期化を可能な限り排除したいと考えています。
regex - Linux readelf は、異なる数値システム (16 進数と 10 進数) でオブジェクトのサイズを表示します
ELF ファイル内のいくつかのオブジェクトを調査しており、その目的で readelf を使用しています。
この readelf のサンプルは、列 3 のオブジェクトのサイズ (バイト) を示しています。
大きなオブジェクトでは、readelf は 10 進数ではなく 16 進数で出力します。
これにより、サイズの並べ替えの試みが中断されます。(ソートでは 16 進値は無視されます)
次のように、すべての 16 進数を 10 進数に変換してみました。
そして得た
サイズ列 (3) は dec に変換されます。これは適切です。
しかし、列2も12月に変換されますが、これは悪いことです..
私はこれを見つけました:
から
しかし、これら2つのコマンドを組み合わせることができないようです。
3 列目だけを 10 進数に変換するにはどうすればよいですか?
ありがとう
compilation - シンボルが symtab で言及されているが、readelf 出力の dynsym で言及されていない場合、それは何を意味しますか?
libtest.so という名前の共有ライブラリがあります。この .so の readelf 出力を分析して解決しundefined reference to _invalid_parameter()
ました。readelf の出力では、.symtab セクションに _invalid_parameter UND が示されていますが、.dynsym セクションには言及されていません。
シンボルが .symtab セクションに記載されているが .dynsym セクションに記載されていないことの意味を誰か説明してもらえますか?
libtest.so は他のいくつかの共有ライブラリに動的にリンクしていますが、それらのいずれも _invalid_parameter の定義を提供していませんが、リンクは通過しています。どうやって?