【问题标题】:How to Load a Relocatable ELF executable file dynamically?如何动态加载可重定位的 ELF 可执行文件?
【发布时间】:2011-01-20 11:29:03
【问题描述】:

我正在尝试为 ARM 平台编写 elf 可执行加载程序。我这里有一些查询

1) 如何生成可重定位或位置无关的 ELF 可执行文件(编译器和链接器选项是什么) 2) 如何加载上面生成的 ELF 可执行文件。

刚开始,我做了一些工作,它工作正常。我为 RO_Base 使用固定地址,并且在构建时不拆分段(不使用任何 --split 选项),因此我得到了一个连续的代码、数据、bss 部分。在此之后,我将精灵加载到与 RO_Base 相同的地址并将代码作为新线程执行。这工作正常。我还没有进行任何搬迁等...

现在我想通过生成可重定位的 ELF 并将加载器修改为适当的更改来使其动态并能够加载到任何地址。 请帮助我使其工作。

谢谢,

【问题讨论】:

    标签: elf


    【解决方案1】:

    只需使用 -r 标志链接器使文件可重定位。

    使用this 之类的东西在内存中重新定位文件。

    【讨论】:

      【解决方案2】:

      这是一个很大的话题。我将参考 John R. Levine 的参考资料“Linkers and Loaders”。这是本书的手稿,Chapter 7 Relocation,希望对你有帮助

      【讨论】:

        猜你喜欢
        • 2015-09-10
        • 2011-09-27
        • 1970-01-01
        • 2014-08-30
        • 1970-01-01
        • 2011-02-04
        • 2011-10-29
        • 2023-03-08
        • 2012-09-02
        相关资源
        最近更新 更多