2011-01-05 11 views
0

ELF Parserを使用して、プログラムのアドレスとデータ部分をどのように分けることができますか?ELFプログラムのデータを区切るパーサー

+0

を探しますか? 「アドレス部分」とは何を意味し、どのようにデータに反対していますか?あなたは "コード"を意味しますか?あなたはこの質問をかなり明確にしない限り、答えを期待することはできません。 – wnoise

+0

私は、任意のプログラムコードから、私はそのデータと関連するメモリアドレスを分離する必要があることを意味しました。例:int a;変数aとそのアドレスを分けて表示する必要があることを意味します。この分離は、ELFファイルからのものでなければなりません – ask

答えて

0

ELFIO libraryをご覧ください。 WriteObjとWriterの例が含まれています。ライブラリを使用すると、ELFバイナリファイル(特定のセクションのフィルタリングを含む)を作成/変更できます。

1

あなたはelfファイルのシンボルテーブルについて話していると思います。シンボルテーブルは、すべてのデータと関数のアドレスを与えるelfファイル内の別のセクションです。

これを行うには、ファイル内のe_shoff(elfヘッダー)が指し示す場所で各セクションヘッダーテーブルを読み取る必要があります。セクションヘッダーごとに、セクションのタイプを確認します。型が2の場合(elf仕様のSHT_SYMTAB)、sh_offsetの位置から対応するsh_sizeを読み込み、シンボルテーブルを取得します。 ELFパーサーは特定のプログラム、またはELFファイルを解析するだけでどのような方法

はエルフ仕様 here

関連する問題