in-memory Linux 内核的 ELF headers?

ELF headers for in-memory Linux kernel?

我正在查看 Ubuntu 14.04 x64 (3.13.0-46-generic) Linux 系统的内存快照。

查看 System.map 文件,.text 部分从 0xffffffff81000000(虚拟)开始,物理地址为 0x1000000。

我正在尝试在内存中找到实际的 ELF header。具体来说,出于取证目的,我试图在没有 System.map 文件的情况下找出每个部分在内存中的位置。波动性取决于股票内核的配置文件,但我想要一种通用方法。

内核启动后这些 header 是否会保留在内存中 运行?

如果不是,有什么方法可以确定每个部分从物理内存捕获中映射到内存的位置吗?

很晚的回答,但只是为了自己记录一下:

parse_elf() 函数在启动时调用,并使用 memmove 将第一部分 (.text) in-place 复制到未压缩的内核上,覆盖 ELF header。