我想创建程序以获取有关操作系统的信息。我尝试使用系统调用,但认为从系统文件读取会更快(直接)。所以,我编写了一个简单的程序,用于从目录“/proc/sys/kernel/”中的文件中读取数据,并希望读取文件:osrelease 主机名、ostype 和其他......所以,我确实认为只是但不是。当我阅读文件“主机名”时,我得到了这个:
????
Run Code Online (Sandbox Code Playgroud)
如果我以超级用户身份阅读,我会得到正常数据
oleg
Run Code Online (Sandbox Code Playgroud)
这是我的程序代码:
global _start
section .data
file db "/proc/sys/kernel/hostname",0
section .bss
buf resb 1024
descriptor resb 4
len equ 1024
section .text
_start:
mov eax, 5
mov ebx, file
mov ecx, 2
int 80h
mov [descriptor], eax
read:
mov eax, 3 ;read text
mov ebx, [descriptor];
mov ecx, buf ;read to variable buf
mov edx, len ;size of bug
int 80h ;interrupt
print_text:
mov edx, eax
mov eax, 4
mov ebx, 1
mov ecx, buf …Run Code Online (Sandbox Code Playgroud)