【问题标题】:Create an ELF file where the section after the .text section is very distant from the .text section创建一个 ELF 文件,其中 .text 部分之后的部分与 .text 部分很远
【发布时间】:2023-03-27 21:00:01
【问题描述】:

我需要针对病态的极端案例测试我正在编写的程序。为此,我想编译一个程序集文件,以便 .text 部分远离它后面的部分。

也就是说,我想在编译后的文件上运行objdump -h时有这样的东西:

  12 .text         00000204  0000000000400400  0000000000400400  00000400  2**4
                  CONTENTS, ALLOC, LOAD, READONLY, CODE
  13 .fini         00000016  0000000000500000  0000000000500000  00000604  2**2

请注意,一个部分的结尾与另一部分的开头之间存在很大的差距。 我已经修改了命令的输出来说明我想要什么,所以如果输出中的某些内容没有意义,那就是因为这个。

【问题讨论】:

    标签: linux assembly elf


    【解决方案1】:

    ...您想知道如何强制链接器创建这样的文件吗?

    您可以手动编写链接脚本并使用“ld”的“-T filename”选项(即“gcc”的“-Wl,-T,filename”选项)。

    【讨论】:

    • 我不知道在这样的链接脚本中放什么。我知道我可以使用 --section-start 来更改部分的起始位置,但是对两个部分执行此操作是行不通的。
    【解决方案2】:

    使用-Wl,--section-start=.text=0x100000 -Wl,--section-start=.data=0x400000 运行汇编程序为我完成了工作。

    【讨论】:

      猜你喜欢
      • 2017-06-21
      • 2012-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多