Blink 拒绝了 Linux 可以接受和运行的 ELF 文件
作者: matheusmoreira创建于 2026年7月24日更新于 2026年7月24日
bad.s .code64
.set VADDR1, 0x400000 # code page load address
.set VADDR2, 0x401000 # "embedded" page load address
.section .elf, "ax"
ehdr:
.byte 0x7f, 'E', 'L', 'F', 2, 1, 1, 0 # e_ident magic, ELFCLASS64, ELFDATA2LSB, EV_CURRENT, SYSV
.quad 0 # e_ident padding
.short 2 # e_type ET_EXEC
.short 0x3e # e_machine EM_X86_64
.long 1 # e_version
.quad VADDR1 + (_start - ehdr) # e_entry
.quad phdr - ehdr # e_phoff
.quad 0 # e_shoff
.long 0 # e_flags
.short 64 # e_ehsize
.short 56 # e_phentsize
.short 2 # e_phnum
.short 0 # e_shentsize
.short 0 # e_shnum
.short 0 # e_shstrndx
phdr:
.long 1 # [0] p_type PT_LOAD
.long 5 # p_flags R | X
.quad 0 # p_offset
.quad VADDR1 # p_vaddr
.quad VADDR1 # p_paddr
.quad 0x1000 # p_filesz
.quad 0x1000 # p_memsz
.quad 0x1000 # p_align
.long 1 # [1] p_type PT_LOAD "embedded" page
.long 4 # p_flags R
.quad 0x1000 # p_offset second page in the file
.quad VADDR2 # p_vaddr
.quad VADDR2 # p_paddr
.quad 0x1000 # p_filesz <= file size ...
.quad 0x1000 # p_memsz
.quad 0x1000 #
…内容来源: jart/blink