代码之家  ›  专栏  ›  技术社区  ›  pts

Linux用户和执行

  •  1
  • pts  · 技术社区  · 14 年前

    我需要一个C库,它允许我执行()静态链接的二进制文件,而不调用 执行(E) 系统调用。系统调用不起作用的原因是二进制文件不可执行,并且不可能在该系统上使其可执行。对于动态链接的二进制文件,运行 /lib/ld-linux.so.2 progname 做了这个技巧,但是我的静态链接二进制文件上的segfaults。

    我在上找到了ul_exec 1.1 http://archive.cert.uni-stuttgart.de/bugtraq/2004/01/msg00002.html 但这似乎是它自己的错 你好,世界 我系统上的二进制文件。

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

    3 回复  |  直到 10 年前
        1
  •  2
  •   Bruce Ediger    10 年前

    我已经 updated The Grugq's userland exec 与现代x86 Linux合作。我从零开始写了一个x86 userland的执行者。

        2
  •  1
  •   jcomeau_ictx    14 年前

    那么,将执行位映射到任何指定文件的用户模式文件系统(例如使用python fuse)如何?那会不会是一个太大的性能冲击?

        3
  •  0
  •   pts    14 年前

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