elf

    10

    1答えて

    ELF形式の.gotと.got.pltセクションの違いは何ですか?

    15

    1答えて

    実行ファイルのELFファイルがreadelf -aを通して見ることができるプログラム(セグメント)ヘッダとセクションヘッダを有し、ここでは一例である: 二つの絵は、上記されていますセクションヘッダーとプログラム(セグメント)ヘッダーをそれぞれ示します。セグメントヘッダーは、プログラムをメモリにロードするために使用されるいくつかのセクションヘッダーで構成されていることがわかります。 .text、.r

    1

    1答えて

    通常、静的変数と大域変数は、初期化条件に従って.dataセクションまたは.bssセクションに格納されます。彼らの生涯はプログラムの始めから終わりまでであると言われており、プログラムはページング管理で要求されたときにページとしてメモリにロードされることも知られている。これは、.dataセクションと.bssセクションの両方が、アクセス前に、または最初の命令が実行される前に、メモリにロードされている必要

    2

    1答えて

    readelfユーティリティの助けを借りて私のオブジェクトのelf-fileを開いた: readelf -a ./my_object.o | less 私は面白い情報がたくさんありました。 セクションテーブル内に "GROUP"タイプの ".group"セクションがあります。 誰かが私に説明することができます、 ".group"セクションの予定は何ですか?

    5

    1答えて

    ELF形式では、インポートされる関数の名前はどこに格納されますか? PE実行ファイルのように、すべてのインポート名を列挙することはいつでも可能ですか? たとえば、バイナリがprintfを使用している場合、それはバイナリ自体の静的解析だけでは分かりますか?

    1

    1答えて

    DIEにオフセットを使って直接アクセスする方法が必要です。これまでは、オフセットからDIEにアクセスできる計算ユニット(CU)オブジェクトのメソッドがあることを発見しました。 I.e. :あなたは、現在のCUの外にあるDIEにアクセスしようとするとそのDIEはそのCUの下でインデックス化されていないため、 cu._get_DIE(die.attributes['DW_AT_type'].value

    6

    2答えて

    nested functionsを使用すると、GCCはtrampoline codeの実行可能スタックを必要とすることがわかりました。ただし、gccを使用してコンパイルすると、実行可能なスタックが表示されません。 #include <stdio.h> #include <unistd.h> int main() { int add(int a, int b) {

    7

    1答えて

    私はいくつかのシンボルを取得し、elfファイルのhexeditを取得します。このシンボルがどのセクションに表示されているかをどのように知ることができますか? strtabとshstrtabの違いは何ですか?シンボル列の配列もありますか? 私は名前のテーブルにインデックスを取得する場合、それはstrtabまたはshstrtabでインデックスですか?

    7

    2答えて

    に私はelfdump -ecps を模倣するプログラムを書いているELFシンボルテーブルへのアクセスは現在正しくエルフヘッダ、プログラムヘッダ、およびセクションヘッダを出力しますが、私は最後の数の部分にこだわっていますシンボルテーブル。 所望の出力は、の形式になります。 Symbol Table Section: .dynsym index value size type bind oth

    8

    1答えて

    のelfファイルのメンバーにアクセスしてセクション名に正しいオフセットを取得しようとしていますが、0またはnullを返し続けます... 私だけmmap()とelf.hを使用することになっていないんだ - 何のヘルパー関数 だから私がやった: void* map_start = mmap(0, fd_stat.st_size, PROT_READ | PROT_WRITE , MAP_SHARED,