创建一个ELF文件,其中.text部分之后的部分与.text部分相距很远

时间:2014-11-04 15:59:37

标签: linux assembly elf

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

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

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

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

2 个答案:

答案 0 :(得分:2)

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

您可以手动编写链接脚本并使用" -T filename" " ld"的选项(" -Wl,-T,文件名"选项" gcc")。

答案 1 :(得分:0)

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