問題タブ [elf]
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.
elf - 再配置可能な ELF 実行可能ファイルを動的にロードする方法は?
ARMプラットフォーム用のelf実行可能ローダープログラムを作成しようとしています.ここにいくつかのクエリがあります
1) 再配置可能または位置に依存しない ELF 実行可能ファイルを生成する方法 (コンパイラとリンカーのオプションとは) 2) 上記で生成された ELF 実行可能ファイルをロードする方法。
astartとして、私はいくつかの作業を行いましたが、正常に動作しています。RO_Base に固定アドレスを使用し、ビルド中にセグメントを分割しない (--split オプションを使用しない) ため、連続したコード、データ、bss セクションを取得できます。この後、エルフを RO_Base と同じアドレスにロードし、コードを新しいスレッドとして実行しています。これはうまくいっています。引越し等はしていません。...
ここで、再配置可能な ELF を生成し、ローダーを適切な変更に変更することで、動的にして任意のアドレスにロードできるようにしたいと考えています。それを機能させるのを手伝ってください。
ありがとう、
linux - ARM Linux での ELF の奇妙さと動的リンク
ARM elf バイナリには、もっと理解したいことがあります。
gp2x f200用の自作アセンブラ出力ELF実行可能ファイルを取得するために、これを理解する必要があります。そこで、open2x クロスコンパイル ツールチェーンを使用してこのプログラムをコンパイルすることから始めました。
それ以外は問題ないように見えますが、x86 と比べて特別なことは何もありません。ELF ヘッダーでは、Flags フィールドが使用されます。ARM elf の仕様をいくつか見つけましたが、なぜこれらが必要なのかについては言及されていません。
現在、他の構造は、x86 のものとあまり変わらないように見えます。それは実際には非常によく知られているように見えます!再配置のタイプもよく知られています (R_386_JUMP_SLOT 対 R_ARM_JUMP_SLOT)。ここでそれは奇妙になり始めますが。
Sym.Value を見ると、この PLT を指しています。問題は、これがどのように機能するのか理解できないことです。R_ARM_JUMP_SLOT の原因は何ですか? PLT にこれらの奇妙な命令が含まれているのはなぜですか? また、動的リンカーはそれらをどのように処理しますか?
プログラムは 0x8000 にロードされているので、その部分はなんとなくわかります。これを -fPIC -shared でコンパイルした場合、これがどのように同じになるのか理解できないことを除いて。
では、ARM では動的リンクはどのように機能するのでしょうか。
linux - a.out は ELF ファイル形式に置き換えられましたか?
いくつかの質問を聞きたいんです:
a.outに置き換えられた理由はELF?- ELF ファイル形式の台頭につながった a.out 形式の主な欠陥は何ですか?
- 以前のコア ダンプは a.out に基づいていましたが、現在は ELF に基づいています。ELF によって提供されるさまざまな利点は何ですか?
linker - 「ローカルリンカーシンボル」と「ローカルプログラム変数」の違いは何ですか?
「ローカルリンカーシンボル」と「ローカルプログラム変数」の違いを知りたいですか?
私はこれを持っている本を読んでいます:
代替テキスト http://img682.imageshack.us/img682/9816/symbols.jpg
とはどういう意味ですか? 例はありますか?
gcc - 特定の ELF 実行可能ファイルをコンパイルするために使用される GCC バージョンを取得する方法は?
特定の実行可能ファイルのコンパイルに使用される GCC バージョンを取得したいと思います。調べてみreadelfましたが、情報が得られませんでした。何かご意見は?
linker - バイナリ形式の「アライメント」フィールドとは何ですか? なぜそれが必要なのですか?
ELFファイル形式では、別名にAlignmentフィールドがあります。Segment Header TableProgram Header Table
Windows PE ファイル形式の場合、次のレベルに進みます。セクションには 2 つのアラインメント値があり、1 つはディスク ファイル内にあり、もう 1 つはメモリ内にあります。PE ファイルのヘッダーは、これらの値の両方を指定します。
私はこの配置について何も理解していませんでした。何のために必要ですか?どのように、どこで使用されますか? 繰り返しますが、バイナリ ファイル形式のコンテキストでアライメントとは何かわかりませんが、なぜそれが必要なのですか?
arm - ELF ファイルと bin ファイルの違いは何ですか?
コンパイラによって生成される最終的なイメージには、bin ファイルと拡張ローダー形式の ELf ファイルの両方が含まれています。この 2 つの違い、特に ELF ファイルのユーティリティです。
linux - LinuxでPE(Portable Executable)形式をELFに変換する方法
PE バイナリを ELF バイナリに変換するのに最適なツールは何ですか?
以下は、この質問の簡単な動機です。
- 単純な C プログラムがあるとします。
- Linux では gcc を使用してコンパイルし (これにより ELF が生成されます)、Windows では 'i586-mingw32msvc-gcc' を使用してコンパイルしました (これにより PE バイナリが生成されます)。
- Bitblaze の静的分析ツール vine( http://bitblaze.cs.berkeley.edu/vine.html )を使用して、これら 2 つのバイナリの類似点を分析したいと思います。
- 現在、つるは PE バイナリを適切にサポートしていないため、PE->ELF に変換してから、比較/分析を続けたいと考えました。
すべての分析は Linux で実行する必要があるため、Linux で実行されるユーティリティ/ツールを使用することをお勧めします。
ありがとう
c++ - ELF: リンク: .so ファイルで未定義の参照が取得されるのはなぜですか
wxWidgets に対してプログラムをビルドしようとしていますが、リンカー エラーが発生します。それが何を意味するのかを本当に理解したいと思います。エラーは次のとおりです。
私が理解していないのは、なぜエラーが にあるのかということですlibwx_baseu-2.8.so。まだリンクが必要なファイルと.soは対照的に、ファイルはすべてのシンボルが解決されていると思いました。.o
を実行するとldd、.soリンクされたすべてのライブラリを解決できるので、問題はありません。
ファイルが正しくコンパイルされていないことを意味しますか.so(その場合、配布パッケージのバグです)、または特定のプログラムのリンカー コマンド ラインにライブラリが不足していることを意味しますか?
さらに、ELF ファイル内の未定義シンボルのリストを取得する方法を知っていますか? 試してみreadelf -sましたが、不足している記号が見つかりません。
ありがとうございました。
ミルドレッド
initialization - グローバル変数はどのように elf ローダーによって初期化されますか?
Cのようなグローバル変数の場合
int グローバル = 5;
ローダーによって 5 がグローバルに転送されるのはいつですか。
関数内の static 宣言と同じ状況。お気に入り
int afunc() { 静的 int astatic = 8; アスタティックを返します。}