I'm looking at a memory snapshot of an Ubuntu 14.04 x64 (3.13.0-46-generic) Linux system.
Looking at the System.map file, the .text section starts at 0xffffffff81000000 (virtual), which is address 0x1000000 physical.
I'm trying to find the actual ELF header in memory. Specifically, I'm trying to figure out where each section resides in memory without having a System.map file, for forensic purposes. Volatility relies on having a profile for a stock kernel, but I'd like a generic approach.
Do these headers persist in memory after the kernel is up and running?
If not, is there some way I can determine where each section is mapped into memory from a physical memory capture?
execveimplementation) - Basile Starynkevitchld.socode, but I suspect when it starts up a new process, it reads the headers into some buffers to get the information that it needs to locate all the correct segments, etc. But, after it maps those segments into the new process address space, it may very well just discard the headers that it no longer needs... - twalberg