use*_*325 2 linux permissions x86 assembly chmod
如何使用 chmod() 更改 Assembly linux x86 中的文件权限?我想要汇编中的示例代码,我看到帮助指南,但仍然很难理解
http://man7.org/linux/man-pages/man2/chmod.2.html
int chmod(const char *pathname, mode_t mode);
Run Code Online (Sandbox Code Playgroud)
chmod() 有 2 个 argv ,第一个是路径文件名,第二个是 mod !
路径 /Users/paul/Desktop/file.txt 和 mode_t 模式为: S_ISUID 、 S_ISGID 、 S_ISVTX 、 S_IRUSR 、S_IWUSR
更多内容可以在 url 第一个问题中看到:我需要在 ecx 的变量中设置这些值,或者我必须使用值数字,我必须使用哪个?S_IWGRP 或 00020 #按组写入
第二个问题:我真的这样做了吗?我将它们放入 ecx 并执行相同的操作:
mov eax,15
mov ebx,mypathfile
mov ecx,S_IWUSR
int 0x80
Run Code Online (Sandbox Code Playgroud)
有人可以给我代码示例吗?
最后一个问题是,如何设置文件的 777 权限(对所有人进行读写执行)?
谢谢。
小智 5
这是完整的程序。这应该可以回答你的问题。
主.asm:
global _start
section .text
_start:
mov eax, 15 ; sys_chmod
mov ebx, path
mov ecx, 0777o
int 0x80
mov eax, 1 ; sys_exit
mov ebx, 0
int 0x80
section .data
path: db "file.ext", 0
Run Code Online (Sandbox Code Playgroud)
构建:
nasm -f elf32 -o main.o main.asm
ld -m elf_i386 -o main main.o
Run Code Online (Sandbox Code Playgroud)