【问题标题】:Is it possible to dlopen an executable binary?是否可以 dlopen 可执行二进制文件?
【发布时间】:2021-07-25 00:49:49
【问题描述】:

我知道 dlopen 用于加载使用“-shared”和可能的“-fPIC”编译的共享库。 但是由于可执行文件和动态库共享相同的格式,我想知道是否可以直接加载可执行文件?

我们可能需要重新构建一个自定义的 dlopen 和 dlsym 是可以接受的,只是想知道是否可以在对二进制文件透明的同时做这些事情。

顺便说一句,加载的可执行文件不能被重用也是可以接受的(因为它不是用-fPIC编译的)。

提前致谢。

【问题讨论】:

  • 你可以试一试,但无论结果如何,都将取决于平台。 (确保可执行文件已编译并使用选项-fPIC 链接。)

标签: linker dlopen


【解决方案1】:

由于可以执行.so 文件:

你能把问题转过来,将可执行文件(应用程序)编译为“.so”文件吗?与-shared 等?

【讨论】:

    【解决方案2】:

    used to be possibledlopen 是 Linux 上的 PIE 可执行文件,但 not anymore -- GLIBC-2.30 禁止这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2010-11-11
      • 1970-01-01
      • 2014-03-24
      相关资源
      最近更新 更多