私は、Libelf と Elfio を使用して、ELF ファイルに新しいセクションを追加しようとしています。のように実行可能にしたいのですが.text
。
これは私の問題です。Libelf を使用すると、ELF をロード ( elf_begin()
)、更新 ( elf_update()
)、リリース ( elf_end()
) するとすぐに、実行可能でなくなります (起動時にseg fault )。readelf -S
セクションを表示しますが、エラーも返します:
readelf: Warning: the .dynamic section is not contained within the dynamic segment
.dynamic
Libelf には、セクションをセグメントに「追加」する関数が見つかりませんでしたDYNAMIC
。
しかし、私は Elfio (segment->add_section_index()
関数を使用) でそれを行うことができますが、ELF をロードするときに Elfio がそれらを上書きするように見えるため、他のすべてのセグメントに手動で他のすべてのセクションを追加する必要があります。
これらのライブラリの経験はありますか?
私の最終的な目標は、パッカーを作成するために、ELF に新しい実行可能セクションを作成し、そのエントリ ポイントを変更して、その新しいセクションにジャンプして直接実行できるようにすることです。