Rus*_*lan 5 linux process exec
假设我的非 root 32 位应用程序在 64 位系统上运行,其中所有文件系统都以只读方式挂载。该应用程序在内存中创建了一个 64 位 ELF 的图像。但是由于只读文件系统,它无法将此图像转储到文件中进行操作execve。是否仍有支持的方式从此映像启动进程?
注意:这里的主要问题是从 32 位模式切换到 64 位模式,而不是进行任何可能不可靠的黑客攻击。如果这解决了,那么整个问题就变得微不足道了——只需制作一个自定义加载器。
Jos*_*ica 28
是的,通过memfd_create和fexecve:
int fd = memfd_create("foo", MFD_CLOEXEC);
// write your image to fd however you want
fexecve(fd, argv, envp);
Run Code Online (Sandbox Code Playgroud)