elf

    13

    1答えて

    私の質問: C標準で保証関数ポインタの平等が ですか? (1)の答えが「はい」の場合。これは、異なる最終コンパイル単位(例えば、メイン実行可能ファイルと共有ライブラリ)で得られたポインタに関係なくですか? どのようにダイナミックローダーがそれに対処していますか? (これは難しいかもしれないいくつかの理由を考えることができます.PICコード(例えば、elfのGOTテーブル、それに相当するCOFFなど

    5

    1答えて

    私は奇妙なELFバイナリを持っています。私はこのバイナリを32ビットのLinuxで動かすことができます。 IDA逆アセンブラでこのバイナリを開くと、IDAに「無効なエントリポイント」と表示されます。 readelfがの 結果は以下の通りです: [email protected]:/home/meltdown# readelf -S -l SimpleVM There are no sectio

    5

    1答えて

    特定のAndroidシステムライブラリの.rel.pltセクションを処理しようとしていますが、機能のアドレスを簡単に見つけることができます。 しかし、私は.rel.dynセクションのエントリから何を作るのか分かりません。このセクションには機能も含まれていますか? X86ライブラリにある.got.pltテーブルがARM Androidライブラリにありません。それらも必要であるかどうかは分かりません。

    8

    2答えて

    動的再配置を解決する際にシンボルルックアップの検索順序はどのようなものですか? 共有ライブラリのシンボルを解決するときに、ローダーは最初に 'メイン実行可能ファイル'を検索します(メインの実行可能ファイルの上書きを許可する...)か、何ですか?

    11

    1答えて

    私は私が手に再配置をリストするとき、私は、GCCのhello.c -oハロー-03 #include <stdio.h> int main(void) { printf("Hello world\n"); return 0; } で、このコードをコンパイルしています: [email protected]$ readelf -r hello | grep gmon 0

    14

    1答えて

    は私がELF実行可能ファイルおよびLinux x86_64でのGNUツールチェーンを試していますバイトELF64実行可能... 0000000: 7f45 4c46 0201 0100 0000 0000 0000 0000 .ELF............ 0000010: 0200 3e00 0100 0000 d400 4000 0000 0000 ..>[email protected]

    47

    2答えて

    セクションおよびセグメントの違いは何ですか:セクションはリンクと再配置のための重要なデータが含まれていながら、 セグメントは、ファイルのランタイム実行するために必要な情報が含まれています。ファイル全体のどのバイトも最大で1つのセクションで所有でき、任意のセクションで所有されていない孤立したバイトが存在する可能性があります。 しかし、セクションとセグメントの違いは何ですか? 実行可能なELFファイル

    5

    1答えて

    私はサードパーティのライブラリAを持っています。これにはライブラリが必要ですB は、静的バージョンBにリンクされているbinraryにリンクされています。 したがって、動的バージョンのBの必要はありません。 は私のコントロール下になく、再コンパイルできません。だから私はセクションAからNEEDED libAのエントリを削除したいと思います。 objcopyや他のツールで行う方法はありますか?

    12

    2答えて

    g ++コンパイラにはゼロコスト例外処理機能があります。私の理解では、tryは何もしませんが、例外がスローされると、例外ハンドラのサブルーチンが実行されます。このように:擬似コードで void foo() { try { bar(); // throws. } catch (Type exc) { baz(); } } (C-スタイリッシ

    5

    1答えて

    私はELFファイルに署名したい、できればPGP鍵で署名し、その後署名を検証できるようにしたい。失敗したら、AuthenticodeまたはSSL証明書を使って署名することになります。 signelfのような既存のオプションは、copyleftライセンス(LGPLの場合でも、私がそれを使用できないような制限を課しています)または古い/維持されていないライセンスの下でのみ利用可能です。 私はどのようなオ