我在链接二进制文件时需要创建一些额外的PT_NULL程序头,以便以后可以在二进制文件中添加新的段。我从这个链接描述文件开始,它似乎并没有影响二进制文件,即它不会创建那些额外的空程序头。
PHDRS
{
PT_PHDR ;
PT_INTERP ;
PT_LOAD ;
PT_LOAD ;
PT_DYNAMIC ;
PT_NULL ;
PT_NULL ;
PT_NULL ;
} ;
任何帮助表示赞赏。谢谢!
您可以通过lief库来实现:
from lief.ELF import Segment, SEGMENT_TYPES
binary = lief.parse("bin_elf")
null = Segment()
null.type=SEGMENT_TYPES.NULL
null.alignment = 0x1000
binary.add(null)
binary.write("bin_elf.modified")