Linux userland exec

时间:2010-11-20 23:12:03

标签: 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()。我正在寻找一种不需要这样的副本的解决方案(因为性能原因)。

3 个答案:

答案 0 :(得分:3)

updated The Grugq's userland exec使用现代x86 Linux。我从头开始写了一个x86_64 userland exec。

答案 1 :(得分:1)

然后如何将执行位映射到指定的任何文件的用户模式文件系统(例如使用python-fuse)?这会对性能造成太大影响吗?

答案 2 :(得分:0)

有一篇很好的简短wiki文章,其中包含一些不完全生产的实现:http://plash.beasts.org/wiki/UserModeExec