Signals

Signals are a form of inter-process communication. However they differ as the kernel is the one to execute a signal, and they are not quite avoidable.

More notable signals are like Sigkill where the process can be killed even though it is not a parent process. Signals are handled over syscalls

Example: Signal trampoline that is defined for each process.

BITS 64

global signalTrampolineStart
global signalTrampolineEnd
signalTrampolineStart:
    mov rbp, rsp ; Set up stack frame
    mov rax, qword [rbp]
    call rax
    mov rsp, rbp
    mov rax, 105 ; Signal return syscall
    int 0x69 ; Execute syscall
signalTrampolineEnd:

Last updated