Linux,readelfでプログラムのエントリポイントを確認

スポンサーリンク

鍛錬 893

Linux,readelfでプログラムのエントリポイントを確認

実行ファイルのELFヘッダを確認すると、プログラムの実行が開始されるアドレス「エントリポイント (entry point)」を確認することができますが、このELFヘッダの情報は readelf を使用して取得することができます。
 
使用方法は、以下に示す通りです。

readelf -h 実行ファイル名

オプション

以下は、上記のオプションについてです。

オプション 機能
-h ELFヘッダの情報を表示する
スポンサーリンク

プログラム

以下は、今回エントリポイントを確認するプログラム、entry_point.c です。

// include
#include <stdio.h>

// main
int main(void)
{
	printf("Hello, World.\n");
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラムのエントリポイントを確認しています。

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra entry_point.c -o entry_point
***@ubuntu:~/***/test/c$ ./entry_point
Hello, World.
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ readelf -h entry_point
ELF ヘッダ:
  マジック:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 
  クラス:                            ELF64
  データ:                            2 の補数、リトルエンディアン
  バージョン:                        1 (current)
  OS/ABI:                            UNIX - System V
  ABI バージョン:                    0
  型:                                DYN (共有オブジェクトファイル)
  マシン:                            Advanced Micro Devices X86-64
  バージョン:                        0x1
  エントリポイントアドレス:               0x530
  プログラムヘッダ始点:          64 (バイト)
  セクションヘッダ始点:          6448 (バイト)
  フラグ:                            0x0
  このヘッダのサイズ:                64 (バイト)
  プログラムヘッダサイズ:            56 (バイト)
  プログラムヘッダ数:                9
  セクションヘッダ:                  64 (バイト)
  セクションヘッダサイズ:            29
  セクションヘッダ文字列表索引:      28

 
上記に示した通り、プログラムの実行が開始されるアドレス「エントリポイント」は「0x530」であることが分かりました。

タイトルとURLをコピーしました