Linux 用户态执行

标签 linux exec userland

我需要一个 C 库,它允许我 exec() 静态链接的二进制文件,而不调用 execve() 系统调用。系统调用不起作用的原因是二进制文件不可执行,并且不可能使其在该系统上可执行。对于动态链接的二进制文件,运行 /lib/ld-linux.so.2 progname 可以解决问题,但在我的静态链接的二进制文件上会出现段错误。

我在 http://archive.cert.uni-stuttgart.de/bugtraq/2004/01/msg00002.html 上找到了 ul_exec 1.1 ,但这似乎在我的系统上它自己的 Hello, World 二进制文件出现了段错误。

一种选择是制作二进制文件的副本,使副本可执行,然后调用execve()。我正在寻找一种不需要这样的副本的解决方案(由于性能原因)。

最佳答案

我已经updated The Grugq's userland exec与现代 x86 Linux 一起工作。我从头开始编写了一个 x86_64 userland exec。

关于Linux 用户态执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235523/

相关文章:

Go exec.Command() - 运行包含管道的命令

c - 如果我在 parent 和 child 中 fork 和 exec 会发生什么?

c - 在用户空间加载不可重定位的静态 ELF 二进制文件

linux - "process scheduling algorithm"Ubuntu 11.10 使用哪个

ruby-on-rails - 未写入日志文件(乘客)

Linux - 删除文件 2 大数据中文件 1 中的行

Linux-更改两个awk脚本之间的行

PHP在Linux服务器上执行split命令

docker - 启动 userland 代理 : listen tcp 0. 0.0.0:7050 时出错:绑定(bind):地址已在使用中