section .data
OPEN equ 2
READ equ 0
EXIT equ 60
FILENAME db "xxx", 0x00
BUFFER db "11111"
section .text
global _start
_start:
mov rax, OPEN
mov rdi, FILENAME
mov rsi, 2
mov rdx, 511
syscall
mov rdi, rax
mov rax, READ
mov rsi, BUFFER
mov rdx, 8
syscall
mov rax, EXIT
mov rdi, 0
syscall
上述代码中xxx为二进制文件,如下图成功读出elf内容:
0x4 文件写open 操作与之前一样,新增write操作,相关系统调用参数如下:
section .data
OPEN equ 2
EXIT equ 60
FILENAME db "hehe", 0x00
section .text
global _start
_start:
mov rax, OPEN
mov rdi, FILENAME
mov rsi, 65
mov rdx, 511
syscall
mov rdi, rax
jmp wirte
wirte:
mov rsi, FILENAME
mov rdx, 4
syscall
jmp exit
exit:
mov rax, EXIT
mov rdi, 0
syscall
0x5 权限修改
在linux中权限修改利用chmod指令,在系统调用的时候采用的sys_chmod函数