首先,Engilish不是我的母语。如果有任何错误,请原谅。
如上所述,我想从进程内存映像创建一个ELF可执行文件。到目前为止,我成功地提取了一个ELF标题,程序标题和一个Elf64_Dyn结构列表驻留在动态段中。我也恢复了GOT。但是,我无法弄清楚如何重建节标题。
问题是当ELF可执行文件加载到内存中时,未加载节标题。如果我们在动态段内使用Elf64_Dyn结构列表,我们可以得到.rela * sections的地址,GOT的地址,字符串表的地址等等。但是,它不包含.text和.data等节的地址。要重建节标题,我们需要节的偏移量和地址,但似乎无法获取这些信息。
如何正确重建节标题?
感谢您的考虑。
答案 0 :(得分:2)
如何正确重建部分标题?
你不能,但你没有拥有 to - 部分(和部分标题)在运行时不被使用(至少不是动态加载器)。
您还可以运行strip --strip-all a.out
将其从“普通”ELF二进制文件中删除,这将继续正常运行。