Source code for libdebug.ptrace.ptrace_constants

#
# This file is part of libdebug Python library (https://github.com/libdebug/libdebug).
# Copyright (c) 2023-2024 Roberto Alessandro Bertolini. All rights reserved.
# Licensed under the MIT license. See LICENSE file in the project root for details.
#

from enum import IntEnum

PTRACE_EVENT_FORK = 1
PTRACE_EVENT_VFORK = 2
PTRACE_EVENT_CLONE = 3
PTRACE_EVENT_EXEC = 4
PTRACE_EVENT_VFORK_DONE = 5
PTRACE_EVENT_EXIT = 6
PTRACE_EVENT_SECCOMP = 7

SIGTRAP = 5
SYSCALL_SIGTRAP = 0x80 | SIGTRAP


[docs] class StopEvents(IntEnum): """An enumeration of the stop events that ptrace can return.""" CLONE_EVENT = SIGTRAP | (PTRACE_EVENT_CLONE << 8) EXEC_EVENT = SIGTRAP | (PTRACE_EVENT_EXEC << 8) EXIT_EVENT = SIGTRAP | (PTRACE_EVENT_EXIT << 8) FORK_EVENT = SIGTRAP | (PTRACE_EVENT_FORK << 8) VFORK_EVENT = SIGTRAP | (PTRACE_EVENT_VFORK << 8) VFORK_DONE_EVENT = SIGTRAP | (PTRACE_EVENT_VFORK_DONE << 8) SECCOMP_EVENT = SIGTRAP | (PTRACE_EVENT_SECCOMP << 8)
[docs] class Commands(IntEnum): """An enumeration of the available ptrace commands.""" PTRACE_TRACEME = 0 PTRACE_PEEKTEXT = 1 PTRACE_PEEKDATA = 2 PTRACE_PEEKUSER = 3 PTRACE_POKETEXT = 4 PTRACE_POKEDATA = 5 PTRACE_POKEUSER = 6 PTRACE_CONT = 7 PTRACE_KILL = 8 PTRACE_SINGLESTEP = 9 PTRACE_GETREGS = 12 PTRACE_SETREGS = 13 PTRACE_GETFPREGS = 14 PTRACE_SETFPREGS = 15 PTRACE_ATTACH = 16 PTRACE_DETACH = 17 PTRACE_GETFPXREGS = 18 PTRACE_SETFPXREGS = 19 PTRACE_SYSCALL = 24 PTRACE_SETOPTIONS = 0x4200 PTRACE_GETEVENTMSG = 0x4201 PTRACE_GETSIGINFO = 0x4202 PTRACE_SETSIGINFO = 0x4203 PTRACE_GETREGSET = 0x4204 PTRACE_SETREGSET = 0x4205 PTRACE_SEIZE = 0x4206 PTRACE_INTERRUPT = 0x4207 PTRACE_LISTEN = 0x4208 PTRACE_PEEKSIGINFO = 0x4209 PTRACE_GETSIGMASK = 0x420A PTRACE_SETSIGMASK = 0x420B PTRACE_SECCOMP_GET_FILTER = 0x420C PTRACE_SECCOMP_GET_METADATA = 0x420D PTRACE_GET_SYSCALL_INFO = 0x420E