【发布时间】:2013-05-30 15:39:32
【问题描述】:
我正在编写一个获取 elf 文件、加载它然后执行它的 c 程序。我已经阅读了所有的标题(elf、section、program、relocation)。下一部分应该是获取要加载的内容,对吧?
我该如何进行?据我了解,我应该得到 LOAD、ALLOC 和 EXECINST 类型的部分还是 LOAD 类型的程序段?还是什么?
当我得到所需的数据时,我应该使用 mmap() 将其映射到内存中。
我已经多次阅读 ELF 文档,但我仍然不知道如何继续。非常感谢任何和所有帮助。
【问题讨论】:
-
为什么要这样做呢?操作系统会为您完成。只需将文件作为程序执行(
exec ()用于 POSIX)。 -
这些是项目的规格。我不能使用 exec()。这个项目的重点是熟悉elf文件,加载和重定位。