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
| Name | Type | Dir | Description |
|---|---|---|---|
| data | void * | inout | Pointeur vers l'en-tête du message sortant (et les données inline). Réutilisé pour le message entrant lors d'une réception. |
| options | uint64_t | in | Drapeaux MACH_SEND_MSG / MACH_RCV_MSG ORés ensemble. |
| msgh_bits_and_send_size | uint64_t | in | Empaqueté : 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
retx86_64
; SYSCALL_CLASS_MACH | 31 → 0x100001F
mov eax, 0x100001F
syscall
retNotes
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
MITRE ATT&CK
Dernière vérification: 2026-05-25