小编OKI*_*KIS的帖子

从 proc/sys/kernel/ 读取数据

我想创建程序以获取有关操作系统的信息。我尝试使用系统调用,但认为从系统文件读取会更快(直接)。所以,我编写了一个简单的程序,用于从目录“/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)

linux x86 assembly nasm

1
推荐指数
1
解决办法
83
查看次数

标签 统计

assembly ×1

linux ×1

nasm ×1

x86 ×1