2016-08-09 13 views
0

誰でもELFファイルからプロセスがどのように作成されたかを詳しく説明しているリンクや書籍を教えてください。自由に入手できる資料のほとんどは、プログラムヘッダーからどのような情報を取得するか、その情報を使用してプロセスイメージがどのようにメモリに格納されているかなど、ほとんどの詳細を抽象的に説明しているようです。 おかげプロセスはどのようにしてELFファイルから作成されますか?

+0

これは、elfファイルからのプロセスの作成にいくつかの重要なブロック(ステップ)を共有すると非常に役に立ちます。 – charanchakravarhy

答えて

0

ELFファイルは、メモリへの負荷として、 すべてのセグメントが一緒に同じcharcteristicsを共有セクションの束を説明し、次のように動作し、各セクションは、読み取り、書き込みとしての権限を持っているか、実行し、どのような基本的に起こることということです各セグメントにはヘッダに仮想アドレスが含まれているヘッダー(phdr)があります。このセグメントはメモリにロードする必要があり、ELF内の実際のバイナリデータへのオフセットです。これはセクションごとに同じですが、各セクションにはいくつかの仮想アドレスがあります読み込み、ファイル内のバイナリデータへのサイズオフセット、また、現在のオペレーティングシステムがファイルイメージからプロセスを作成するために実行するthagメモリ(書き込み/読み取り/実行)のパーミッションが読み込まれ、すべてのセクションを解析し、ロードフラグが存在する場合はメモリに格納し、そのメモリセクション適切なアクセス許可。バイナリデータの例は機械命令である。 .textセクションには、通常、バイナリ命令(コード)が含まれます。セクションのもう1つの良い例は、プロセスのグローバル変数を含み、読み込み書き込み権限のみを持つ.dataです。一般的なelfヘッダーには、エントリポイントと呼ばれるものも含まれます。 - 実行する最初の命令の仮想アドレス

elfファイルははるかに複雑ですが、一般的にはこれが含まれているため、リンカやダイナミックリンカなどに便利なデータがあります。再配置テーブルやシンボルテーブルとしては基本的にこれはelfファイルを読み込むときに起こることですが、ここでこのテーマについてもっと知るには良いリンクがあります:http://flint.cs.yale.edu/cs422/doc/ELF_Format.pdf

また、Linuxベースのシステムを使用している場合は、 g周りにreadelfobjdumpと個人的にそれは多くを学ぶのを手助けしました

関連する問題