すべてのファイルシステムが読み取り専用でマウントされた64ビットシステムで、ルートではなく32ビットアプリケーションを実行しているとします。アプリケーションはメモリに64ビットELFイメージを生成します。ただし、読み取り専用ファイルシステムのため、このイメージをファイルにダンプして操作を実行することはできませんexecve
。この画像からプロセスを開始するサポートされている方法はまだありますか?
注:ここで最大の問題は、32ビットモードから64ビットモードに切り替えても効果がないことです。潜在的に信頼できないハッキング。この問題が解決されると、問題全体がマイナーになります。ただカスタムローダーを作成してください。
ベストアンサー1
うん、合格memfd_create
そしてfexecve
:
int fd = memfd_create("foo", MFD_CLOEXEC);
// write your image to fd however you want
fexecve(fd, argv, envp);