所以基本上我有一些在Linux32位上编译的ELF二进制文件。我想在我的Mac64位上分析它。我正在尝试使用自制软件安装的gnu实用程序,例如gobjdump和greadelf。但是,当我尝试使用gobjdump解析elf二进制文件时,出现了这个错误:gobjdump:hello:Fileformatisambiguousgobjdump:Matchingformats:elf32-i386-naclelf32-i386-sol2elf32-i386-vxworkself32-i386所以我的问题是:是否可以使用其gnuutils在MAC上分析32位Linux编译的ELF二进制文件?如
所以基本上我有一些在Linux32位上编译的ELF二进制文件。我想在我的Mac64位上分析它。我正在尝试使用自制软件安装的gnu实用程序,例如gobjdump和greadelf。但是,当我尝试使用gobjdump解析elf二进制文件时,出现了这个错误:gobjdump:hello:Fileformatisambiguousgobjdump:Matchingformats:elf32-i386-naclelf32-i386-sol2elf32-i386-vxworkself32-i386所以我的问题是:是否可以使用其gnuutils在MAC上分析32位Linux编译的ELF二进制文件?如
在Loaders部分引用“LinkersandLoaders”"load-timerelocationisfarsimplerthanlink-timerelocation,becausetheentireprogramisrelocatedasaunit.[...]Afterreadingtheprogramintomemory,theloaderconsultstherelocationitemsintheobjectfileandfixesupthememorylocationstowhichtheitemspoint"也许我误解了这一点,这仅在某些体系结构中存在,但我的问题是:
在Loaders部分引用“LinkersandLoaders”"load-timerelocationisfarsimplerthanlink-timerelocation,becausetheentireprogramisrelocatedasaunit.[...]Afterreadingtheprogramintomemory,theloaderconsultstherelocationitemsintheobjectfileandfixesupthememorylocationstowhichtheitemspoint"也许我误解了这一点,这仅在某些体系结构中存在,但我的问题是:
我有一个要求,我想将一个index与一个文件(以某种格式)相关联。我想知道我是否可以进行任何ELF操作并仍然确保保持一致性,以便该文件在linux上运行良好。这里的想法是创建一种文件格式,可以通过某个API[自定义]查询来获取索引。a)是否可以修改ELF头来存储索引(如上所述)。b)如果是,流程是什么? 最佳答案 您可以将包含任何数据的新ELF部分添加到现有可执行文件中。例如$echo42>/tmp/index$objcopy--add-section.my_index=/tmp/index/bin/lsmyls$objdump-s
我有一个要求,我想将一个index与一个文件(以某种格式)相关联。我想知道我是否可以进行任何ELF操作并仍然确保保持一致性,以便该文件在linux上运行良好。这里的想法是创建一种文件格式,可以通过某个API[自定义]查询来获取索引。a)是否可以修改ELF头来存储索引(如上所述)。b)如果是,流程是什么? 最佳答案 您可以将包含任何数据的新ELF部分添加到现有可执行文件中。例如$echo42>/tmp/index$objcopy--add-section.my_index=/tmp/index/bin/lsmyls$objdump-s
这是文件/proc/self/smaps的片段:00af8000-00b14000r-xp00000000fd:0016417/lib/ld-2.8.soSize:112kBRss:88kBPss:1kBShared_Clean:88kBShared_Dirty:0kBPrivate_Clean:0kBPrivate_Dirty:0kBReferenced:88kBSwap:0kB00b14000-00b15000r--p0001c000fd:0016417/lib/ld-2.8.soSize:4kBRss:4kBPss:4kBShared_Clean:0kBShared_Dirty:
这是文件/proc/self/smaps的片段:00af8000-00b14000r-xp00000000fd:0016417/lib/ld-2.8.soSize:112kBRss:88kBPss:1kBShared_Clean:88kBShared_Dirty:0kBPrivate_Clean:0kBPrivate_Dirty:0kBReferenced:88kBSwap:0kB00b14000-00b15000r--p0001c000fd:0016417/lib/ld-2.8.soSize:4kBRss:4kBPss:4kBShared_Clean:0kBShared_Dirty:
inti;intmain(){returni;}-static编译后readelf-l显示来自elf的程序头:ElffiletypeisEXEC(Executablefile)Entrypoint0xxxxx30Thereare6programheaders,startingatoffset52ProgramHeaders:TypeOffsetVirtAddrPhysAddrFileSizMemSizFlgAlignLOAD0x0000000x080480000x080480000x798680x79868RE0x1000>LOAD0x079f940x080c2f940x080c2f9
inti;intmain(){returni;}-static编译后readelf-l显示来自elf的程序头:ElffiletypeisEXEC(Executablefile)Entrypoint0xxxxx30Thereare6programheaders,startingatoffset52ProgramHeaders:TypeOffsetVirtAddrPhysAddrFileSizMemSizFlgAlignLOAD0x0000000x080480000x080480000x798680x79868RE0x1000>LOAD0x079f940x080c2f940x080c2f9