私は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実行可能ヘッダのエントリポイント
- 3. ELFセクションのパディング
- 4. ELFファイルのデバッグ
- 5. ELFファイルのサイズとRAMのサイズ
- 6. ELFとメモリのセグメントの違い
- 7. Androidでelf実行可能ファイルを実行しています
- 8. ELFのセクションをスワップ
- 9. ELFのシンボル解決
- 10. 共有ライブラリとLinux(elf)のリンク
- 11. PEとELFバイナリコードの相違点
- 12. スプリットパンダ実際の列名と
- 13. Githubリリースと実際のソフトウェアバージョン
- 14. Rプロットと実際のサイズ
- 15. Linux ELFファイルセクション名
- 16. Linux elf .text direction
- 17. Benign ELFデータセット
- 18. スクリプトは、ELFバイナリ
- 19. elf実行可能ファイルから構造内の要素のアドレス
- 20. ELF実行中のLinuxメモリ/ディスクの動作
- 21. 新しいELF実行可能ファイルの作成
- 22. ELF(コアとアウト)をダンプするPythonスクリプト?
- 23. RailsのMySQLのELFヘッダエラー
- 24. ARM ELF難読化
- 25. 奇妙なELFバイナリ
- 26. ELFの文字列テーブル
- 27. ELFファイルの配列長
- 28. ELFバイナリでのインポート名
- 29. 独自のARM ELFバイナリ
- 30. LKMのELFセクションを使用
iは、本体から_startラベルにアクセスすることはできますか? –