Skip to content

Instantly share code, notes, and snippets.

@s5bug
Created February 29, 2024 20:05
Show Gist options
  • Save s5bug/34a198d6d0b8b93ff9a92cecaf58bbb4 to your computer and use it in GitHub Desktop.
Save s5bug/34a198d6d0b8b93ff9a92cecaf58bbb4 to your computer and use it in GitHub Desktop.
Linux AMD64 ELF
BITS 64
org 0x00010000
ehdr:
db 0x7F, "ELF"
db 2 ; 64 bits
db 1 ; LE
db 1 ; ELF v1
db 0 ; SysV
_third:
syscall ; abi version
dec edi ; exit code = 0
mov al, 60 ; syscall = exit
syscall
dw 2 ; Executable
dw 62 ; x86_64
dd 1 ; ELF v1
dq _first ; entrypoint
dq phdr - $$ ; phdr offset
padding1:
db "@aly.fis" ; shdr offset
db "h", 10, 0, 0 ; flags
dw ehdrsize
dw phdrsize
phdr:
dw 1 ; phnum ; phdr loadable segment
dw 0 ; shentsize
dw 5 ; shnum ; phdr RX
dw 0 ; shstrndx
ehdrsize equ $ - ehdr
dq 0 ; offset 0
dq $$ ; vaddr
_first:
inc eax ; paddr ; syscall = write
inc edi ; fd = stdout
mov dl, 10 ; sz = 10
jmp _second
dq filesize
dq filesize
_second:
mov esi, padding1 ; align
jmp _third
db 0
phdrsize equ $ - phdr
filesize equ $ - $$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment