実行可能ファイルなしでまったく新しいプロセスを実行できますか?

実行可能ファイルなしでまったく新しいプロセスを実行できますか?

すべてのファイルシステムが読み取り専用でマウントされた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);

おすすめ記事