問題タブ [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.

0 投票する
8 に答える
148053 参照

linux - バイナリ実行時の「そのようなファイルまたはディレクトリはありません」エラー

Ubuntu9.10x86_64にバイナリLinuxアプリケーションをインストールしていました。アプリには、はるかに古いカーネル用にコンパイルされた古いバージョンのgzip(1.2.4)が付属しています。

このプログラムを実行できませんでした。私が試した場合、これは起こりました:

lddも同様にこのバイナリに不満を持っていました:

私は興味があります:この問題の最も可能性の高い原因は何ですか?破損したファイル?または、はるかに古い{kernel、libc、...}用に構築されているためにバイナリの非互換性がありますか?

nosの提案によると、次の出力がありstrace ./gzipます。

これがの出力ですreadelf -a ./gzip

0 投票する
2 に答える
385 参照

linux - x86 Linux で elf 実行可能ファイルのアラインされたアドレスに関数がロードされるのはなぜですか?

私は、主に IDA だけでなく gdb も使用して、x86 で Linux elf 実行可能ファイルを見てきました。私が気付いたことの 1 つは、関数は常にワード境界で整列されたアドレスにロードされるということですか? その理由を知っている人はいますか?アラインされたアドレスで開始する x86 命令の要件を認識していません。また、ページ境界が関数内のどこにでもある可能性があるため、ページの配置が原因ではありません。

洞察をいただければ幸いです。

ありがとう。

0 投票する
2 に答える
3619 参照

binary - ファイルをELF実行可能ファイルにパックする

私は現在、すでにコンパイルされたELF実行可能ファイルにデータを追加する方法を探しています。つまり、ファイルを再コンパイルせずに実行可能ファイルに埋め込みます。

を使用して簡単にそれを行うことがcat myexe mydata > myexe_with_mydataできましたが、元の実行可能ファイルのサイズがわからないため、実行可能ファイルからデータにアクセスできませんでした。

誰かが私がこれをどのように実装できるかについての考えを持っていますか?実行可能ファイルにセクションを追加したり、実行可能ファイルのデータの先頭を検出するために特別なマーカー(0xBADBEEFC0FFEEたとえば)を使用したりすることを考えましたが、それを行うためのより美しい方法があるかどうかはわかりません。

前もって感謝します。

0 投票する
5 に答える
5731 参照

ruby - x86_64 で libxml-ruby を読み込めませんでした

サーバー側で libxml-ruby gem に問題があります x86_64 アーキテクチャを使用しているため可能性があります:

$ uname -a Linux ip-10-228-171-64 2.6.21.7-2.fc8xen-ec2-v1.0 #1 SMP Tue Sep 1 10:25:30 EDT 2009 x86_64 GNU/Linux

宝石バージョン 1.1.4

gem を再インストールしても解決しない

0 投票する
1 に答える
376 参照

linux - ライブラリの初期化後に RAM から ELF セクションをフラッシュする

ライブラリの初期化中にのみ使用される ELF 共有ライブラリに多くのコードがあります (静的初期化子から呼び出されます)。このコードを独自のセクションに入れる場合 (または、.init セクションに入れることもできます)、__attribute__((section(".mysection")))ライブラリをロードした後にこのセクションを強制的にページアウトする方法はありますか?

この質問は関連していますが、メモリが不足するとカーネルが未使用のページをページアウトするという結論が得られたため、明示的に行う必要はありません。ただし、メモリが貴重であり、ディスク (低速の USB フラッシュ ドライブ) からのコードのページングのコストが高い組み込み環境で作業しています。したがって、カーネルが最終的にページインする必要があるかもしれない他のコードをフラッシュすることを決定するのではなく、二度と使用されないことがわかっているこのコードを明示的にフラッシュしたいと思います。

カーネルにメモリの特定の領域をページインまたはページアウトするように要求するシステムコールについて読んだことを覚えていると思いますが、これへの参照はどこにも見つからないので、想像したのかもしれません。そのようなものは存在しますか?

0 投票する
3 に答える
5657 参照

c - ELF 文字列テーブル セクション ヘッダーへのアクセス

次のことを前提とします。

以下が関連する文字列テーブル セクション ヘッダーを指していないのはなぜですか?

strTabSectionHeader->type == SHT_STRTAB偽に等しい

関連する文字列テーブル セクション ヘッダーを参照するにはどうすればよいですか?

0 投票する
0 に答える
1698 参照

eclipse - Windows内のEclipse内でelfを構築する

WindowsのEclipse内でElfファイルを作成するのに問題があります。ビルドするたびに、Windows用のPE/ポータブル実行可能ファイルが作成されるようです。Binary Parserセクションに移動し、Elf Parserをチェックして、他のすべてがチェックされていないことを確認しました。しかし、Linuxでは実行できないPEになってしまいます。

明確にするために、私はEclipse内でLinuxGCCツールチェーンを使用しています。

Cygwinの再インストールを試みましたが、それでも同じ問題が発生します。

何か案は?

ありがとう

0 投票する
1 に答える
4809 参照

linux - Linuxバイナリの仮想メモリアドレスが0x8048000で始まるのはなぜですか?

Ubuntu x86システムでのELFバイナリの逆アセンブルcode(.text)セクションが仮想アドレス0x8048000から始まり、下位のメモリアドレスがすべて使用されていないように見えることに気づかずにはいられませんでした。

これはかなり無駄なようで、Googleが明らかにするのは、STACK_TOPを含む民間伝承か、nullポインターの逆参照に対する保護のいずれかです。後者の場合は、128MBのギャップを残す代わりに、単一のページを使用することで修正できるようです。

だから私の質問はこれです-なぜレイアウトがこれらの値に固定されているのかについての決定的な答えはありますか、それとも単なる任意の選択ですか?

0 投票する
6 に答える
13610 参照

linux - ヘッダー情報を含む ELF ファイル/イメージのサイズを確認するにはどうすればよいですか?

計算のためにエルフ画像のサイズを見つける必要があります。ヘッダーとセクションに関する情報を提供する Linux の readelf ユーティリティを試してみました。エルフの正確なファイルサイズ(全体)が必要です。

ヘッダー情報から ELF のサイズを確認するにはどうすればよいですか、またはイメージ全体を読み取らずに ELF のサイズを確認する方法はありますか。

0 投票する
1 に答える
3342 参照

c - readelf が表示されるのに objdump が .symtab セクションを表示しないのはなぜですか?

gcc で単純なプログラムをコンパイルしましたが、objdump を使用してセクション ヘッダーが表示された場合、セクションが表示されません.symtab。同じa.outファイルに対して、 readelf は次のセクションを表示します。

なんで?

.symtabデフォルトのリンカ スクリプトでは、セクションの定義が見つかりません。リンカー スクリプトのように自分で定義を追加すると、次のようになります。

__start_symとのアドレスの差__end_symはゼロです。これは、そのようなセクションが出力ファイルに追加されないことを意味します。

しかし、readelf はセクションを読み取り、このセクションの内容をダンプすることができます.. どのように? なぜ ?