首先,英语不是我的母语。如有错误请多多包涵。如上所述,我想从进程内存镜像创建一个ELF可执行文件。到目前为止,我成功地提取了一个ELFheader、程序header和一个位于动态段中的Elf64_Dyn结构列表。我也恢复了GOT。但是,我不知道如何重建节标题。问题是当ELF可执行文件被加载到内存中时,节头没有被加载。如果我们在Dynamic段中使用Elf64_Dyn结构列表,我们可以获得.rela*段的地址、GOT的地址、字符串表的地址等。但是,它不包含.text和.data等部分的地址。要重建节头,我们需要节的偏移量和地址,但似乎没有办法获得这些信息。如何正确地重建章节标题?感谢您的
首先,英语不是我的母语。如有错误请多多包涵。如上所述,我想从进程内存镜像创建一个ELF可执行文件。到目前为止,我成功地提取了一个ELFheader、程序header和一个位于动态段中的Elf64_Dyn结构列表。我也恢复了GOT。但是,我不知道如何重建节标题。问题是当ELF可执行文件被加载到内存中时,节头没有被加载。如果我们在Dynamic段中使用Elf64_Dyn结构列表,我们可以获得.rela*段的地址、GOT的地址、字符串表的地址等。但是,它不包含.text和.data等部分的地址。要重建节头,我们需要节的偏移量和地址,但似乎没有办法获得这些信息。如何正确地重建章节标题?感谢您的
我试图通过访问elf文件的sh_name成员来获取节名称的正确偏移量,但它一直给我零或空...我应该只使用mmap()和elf.h-没有辅助函数所以我做了:void*map_start=mmap(0,fd_stat.st_size,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0))header=(Elf32_Ehdr*)map_start;secoff=header->e_shoff;section=(Elf32_Shdr*)(map_start+secoff);但是当我这样做的时候:printf("nameoffset=%d\n",(section->sh_
我试图通过访问elf文件的sh_name成员来获取节名称的正确偏移量,但它一直给我零或空...我应该只使用mmap()和elf.h-没有辅助函数所以我做了:void*map_start=mmap(0,fd_stat.st_size,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0))header=(Elf32_Ehdr*)map_start;secoff=header->e_shoff;section=(Elf32_Shdr*)(map_start+secoff);但是当我这样做的时候:printf("nameoffset=%d\n",(section->sh_
我正在尝试根据thismanual构建collective.simserver,有一些修改:insteadof:virtualenv--python=bin/python2.7simserver/Iamusing:virtualenv--python=myVirtualEnv/bin/pythonsimserver我设法做到了这一点:myVirtualEnv/bin/pythonbootstrap.py然后它用这个错误信息分开:Aninternalerroroccurredduetoabugineitherzc.buildoutorinarecipebeingused:Tracebac
我必须编写一个C程序来打印ELF文件。我无法确定节标题字符串表的位置。假设我有一个文件,输出如下:阅读-hELFHeader:Magic:7f454c46010101000000000000000000Class:ELF32Data:2'scomplement,littleendianVersion:1(current)OS/ABI:UNIX-SystemVABIVersion:0Type:REL(Relocatablefile)Machine:Intel80386Version:0x1Entrypointaddress:0x0Startofprogramheaders:0(bytes