Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. format ELF64 executable 3
  2. entry start
  3.  
  4. __NR_open equ 2
  5. __NR_close equ 3
  6. __NR_sendfile equ 40
  7. __NR_exit equ 60
  8. STDIN_FILENO equ 0
  9. STDOUT_FILENO equ 1
  10. CHUNKSIZE equ 1048576
  11.  
  12. segment readable writeable
  13.     fd dq STDIN_FILENO
  14.  
  15. segment readable executable
  16.  
  17. start:
  18.     xor r8, r8
  19.     mov rbx, 1
  20.     cmp [rsp], rbx
  21.     je sendfile
  22. open:
  23.     xor rsi, rsi
  24.     mov rdi, [rsp+rbx*8+8]
  25.     mov rax, __NR_open
  26.     syscall
  27.     mov [fd], rax
  28. sendfile:
  29.     mov r10, CHUNKSIZE
  30.     mov rdx, r8
  31.     mov rsi, [fd]
  32.     mov rdi, STDOUT_FILENO
  33.     mov rax, __NR_sendfile
  34.     syscall
  35.     test rax, rax
  36.     jnz sendfile
  37. close:
  38.     mov rdi, [fd]
  39.     mov rax, __NR_close
  40.     syscall
  41.     inc rbx
  42.     cmp rbx, [rsp]
  43.     jb open
  44. exit:
  45.     xor rdi, rdi
  46.     mov rax, __NR_exit
  47.     syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement