Skip to content
Trap Mach#-31Introduit dans macOS 13.0 Ventura

svc · mach trap -31

mach_msg2_trap

Envoie et/ou reçoit un message Mach sur un port. Le remplaçant introduit avec Ventura de mach_msg_trap qui prend ses options dans un seul argument empaqueté.

Prototype

kern_return_t mach_msg2_trap(void *data, uint64_t options, uint64_t msgh_bits_and_send_size, uint64_t msgh_remote_and_local_port, uint64_t msgh_voucher_and_id, uint64_t desc_count_and_rcv_name, uint64_t rcv_size_and_priority, uint64_t timeout);

Retour: kern_return_t — KERN_SUCCESS or a MACH_SEND_*/MACH_RCV_* error

Arguments

NameTypeDirDescription
datavoid *inoutPointeur vers l'en-tête du message sortant (et les données inline). Réutilisé pour le message entrant lors d'une réception.
optionsuint64_tinDrapeaux MACH_SEND_MSG / MACH_RCV_MSG ORés ensemble.
msgh_bits_and_send_sizeuint64_tinEmpaqueté : 32 bits faibles = msgh_bits, 32 bits hauts = taille envoi.

Historique des versions

Absent de toute version XNU publiée.

Stub utilisateur

arm64

; libsystem_kernel.dylib: _mach_msg2_trap
mov     x16, #-31       ; SYS_mach_msg2_trap
svc     #0x80
ret

x86_64

; SYSCALL_CLASS_MACH | 31  →  0x100001F
mov     eax, 0x100001F
syscall
ret

Notes

Introduit dans macOS 13 Ventura pour replier les sept arguments de mach_msg_trap dans un seul SVC à arguments empaquetés — important sur arm64 où chaque argument de trap coûte un registre. mach_msg() dans libsystem_kernel passe désormais par mach_msg2_trap sur Ventura+, avec un repli sur mach_msg_trap sur les noyaux antérieurs.

Détection

Endpoint Security n'a pas d'événement IPC Mach. La détection passe par l'instrumentation en espace utilisateur (DYLD_INSERT_LIBRARIES de libsystem_kernel.dylib) ou, en recherche, en activant la probe DTrace mach_kernel::mach_msg2_trap.

Utilisation par les malwares

Le code anti-debug utilise mach_msg2_trap avec task_get_special_port + falsification de send-rights pour détecter les attaches ptrace. Les implants qui usurpent CrashReporter volent le port d'exception via ce trap.

API associées

mach_msgmach_msg_trapmach_port_constructmach_port_destruct

MITRE ATT&CK

Dernière vérification: 2026-05-25