2

我需要一个 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()。我正在寻找不需要此类副本的解决方案(由于性能原因)。

4

3 回答 3

4

我已经更新了 The Grugq 的 userland exec以与现代 x86 Linux 一起工作。我从头开始编写了一个 x86_64 用户态 exec。

于 2013-06-07T17:36:15.570 回答
1

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

于 2010-11-20T23:25:27.850 回答
-1

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

于 2010-12-10T19:16:44.570 回答