Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .intel_syntax noprefix
- .text
- .global _start
- _start:
- xor rax,rax
- xor rdi,rdi
- # fd = sys.open(".", 0, 0)
- # rdi =filename
- # rsi = flags
- # rdx = mode
- # syscall n 2
- push 0x2e # the ASCII code of '.' = current dir
- mov rdi,rsp
- xor rsi,rsi # flags = 0
- xor rdx,rdx # mode = 0
- inc rax # syscall n 2
- inc rax
- syscall
- test rax,rax
- jz error
- mov rdi,rax # fd
- # getdents (fd, where = esp, size = 0x100)
- # rdi = fd
- # rsi = buffer
- # rdx = count
- # syscall n 78
- mov dl, 0xfe # size
- sub rsp,rdx # room to stock
- mov rsi,rsp # buffer address
- mov al,78 # syscall n 78
- syscall
- # size read
- mov rdx,rax
- # clean close
- # close (fd)
- # rdi = fd
- # syscall n 3
- xor rax,rax
- inc rax # +1
- inc rax # +1
- inc rax # +1 => 3
- syscall
- # display
- # write (fd, buf, count)
- # rdi = out fd
- # rsi = buffer
- # rdx = count
- # syscall n 1
- mov rsi,rsp # adr buf
- xor rax,rax
- inc rax # syscall 1
- xor rdi,rdi # out fd
- inc rdi # n 1
- syscall
- # clean the stack
- add rsp,rdx # on remonte de ce que on a lu
- error:
- # sys_exit
- # syscall n 60
- xor rax,rax
- mov al,60 # syscall n 60
- xor rdi,rdi # error code
- syscall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement