linux – 我可以在没有可执行文件的情况下执行一个全新的进程吗?

假设我的非root 32位应用程序在64位系统上运行,其所有文件系统都以只读方式挂载.该应用程序在内存中创建64位ELF的图像.但由于只读文件系统,它无法将此图像转储到文件中以执行操作.是否仍有支持的方法从此图像启动进程?

注意:这里的主要问题是从32位模式切换到64位,而不是执行任何potentially unreliable hacks.如果这个问题得到解决,那么整个问题就变得微不足道 – 只需创建一个自定义加载器.

最佳答案
是的,通过memfd_createfexecve

int fd = memfd_create("foo", MFD_CLOEXEC);
// write your image to fd however you want
fexecve(fd, argv, envp);

转载注明原文:linux – 我可以在没有可执行文件的情况下执行一个全新的进程吗? - 代码日志