私はreadelfユーティリティーを使って実行可能ファイルをチェックします(そして、-h).e_entryフィールドの値は0x8048530です。次に、チェックされたプログラムを再コンパイルして、行:printf( "%p \ n"、(void *)main)を追加して独自のプログラムエントリを出力させ、出力する:0x80485e4。なぜ私はこの違いがありますか? (OS:Linux 32ビット)の実行のELFエントリーフィールドと実際のプログラムエントリー
1
A
答えて
3
エントリポイントが通常main
そのものではなくmain
を呼び出す前に初期化を実行するプラットフォーム固有の機能(私たちは_start
を呼ぶだろうということ)ではありません。質問に答える
1
「iは、本体から_startラベルにアクセスすることができます?」:
#include <stdio.h>
int main()
{
void* res;
#if defined(__i386__)
asm("movl _start, %%eax" : "=a" (res));
#elif defined(__x86_64__)
asm("movq _start, %%rax" : "=a" (res));
#else
#error Unsupported architecture
#endif
printf("%p\n", res);
return 0;
}
関連する問題
- 1. Linux実行時のELFセクションの "反復"
- 2. ELFファイルのサイズとRAMのサイズ
- 3. Androidでelf実行可能ファイルを実行しています
- 4. PEとELFバイナリコードの相違点
- 5. 共有ライブラリとLinux(elf)のリンク
- 6. スクリプトは、ELFバイナリ
- 7. Rプロットと実際のサイズ
- 8. elf実行可能ファイルから構造内の要素のアドレス
- 9. 新しいELF実行可能ファイルの作成
- 10. ELF(コアとアウト)をダンプするPythonスクリプト?
- 11. RailsのMySQLのELFヘッダエラー
- 12. 奇妙なELFバイナリ
- 13. ELFバイナリでのインポート名
- 14. ELFの文字列テーブル
- 15. LKMのELFセクションを使用
- 16. ELFファイルの読み込み
- 17. ELF - 実行可能なメモリ領域を確認
- 18. GNUリンカに32ビットELF実行ファイルを生成させよう
- 19. 実際の値
- 20. 実際のフォーム
- 21. ライブバイトとiOSのアクティビティモニターの実際のメモリ
- 22. HttpSessionBindingListenerとHttpSessionAttributeListenerの実際の使用
- 23. ジェネレータと実際の変数の値
- 24. 設定ローカルホストと実際のホスティングのメンバーシップ
- 25. UIAccessibilityLayoutChangedNotificationとUIAccessibilityScreenChangedNotificationの実際の違いは?
- 26. HDFSのブロックサイズと実際のファイルサイズ
- 27. ELFファイルに任意のデータを追加するとELF仕様に違反しますか?
- 28. openmp理論と実際の効率
- 29. Firebug css js orderと実際のロードオーダー
- 30. 実際の画像と異なるサムネイル
iは、本体から_startラベルにアクセスすることはできますか? –