Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- format ELF64 executable 3
- entry start
- __NR_open equ 2
- __NR_close equ 3
- __NR_sendfile equ 40
- __NR_exit equ 60
- STDIN_FILENO equ 0
- STDOUT_FILENO equ 1
- CHUNKSIZE equ 1048576
- segment readable writeable
- fd dq STDIN_FILENO
- segment readable executable
- start:
- xor r8, r8
- mov rbx, 1
- cmp [rsp], rbx
- je sendfile
- open:
- xor rsi, rsi
- mov rdi, [rsp+rbx*8+8]
- mov rax, __NR_open
- syscall
- mov [fd], rax
- sendfile:
- mov r10, CHUNKSIZE
- mov rdx, r8
- mov rsi, [fd]
- mov rdi, STDOUT_FILENO
- mov rax, __NR_sendfile
- syscall
- test rax, rax
- jnz sendfile
- close:
- mov rdi, [fd]
- mov rax, __NR_close
- syscall
- inc rbx
- cmp rbx, [rsp]
- jb open
- exit:
- xor rdi, rdi
- mov rax, __NR_exit
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement