gpt4 book ai didi

linux - Linux 中的返回信号

转载 作者:太空宇宙 更新时间:2023-11-04 05:04:52 25 4
gpt4 key购买 nike

如何在 Linux 中汇编器返回信号?我想要返回 SIGALRM(#14 信号)。

global _start

_start:
mov eax, 01h
mov ebx, 0xE
int 80h

但是:

运行时错误:时间:0内存:140信号:-1

我知道我做错了,但是我如何返回任何 Linux 信号?

最佳答案

我不确定“返回信号”是什么意思?在 Linux 中,信号是从一个进程发送到另一个进程的事件。

在Linux中,sys_kill或sys_tkill用于向某个进程或线程发送信号。

参数是:

sys_kill = 37
eax = 37
ebx = process ID (<-1, -1 and 0 have special meaning)
ecx = signal to send in your case SIGALRM = 14


sys_tkill = 238
eax = 238
ebx = the PID of the thread
ecx = signal ID

所以,如果你想向自己的进程发送信号,你必须先获取进程id,然后再发送信号:

mov  eax, sys_getpid    ; sys_getpid = 20
int 80h
mov ebx, eax ; PID to ebx

mov eax, sys_kill
mov ecx, SIGALRM
int 80h

mov eax, sys_exit ; sys_exit = 1
xor ebx, ebx
int 80h

关于linux - Linux 中的返回信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18889614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com