svc · mach trap -45
task_for_pid
Retourne un port task Mach pour le processus avec le PID donné — la primitive clé pour l'accès mémoire inter-processus sur macOS.
Prototype
kern_return_t task_for_pid(mach_port_name_t target_tport, int pid, mach_port_name_t *t);Retour: kern_return_t — KERN_SUCCESS, or KERN_FAILURE / KERN_INVALID_ARGUMENT on denial
Arguments
| Name | Type | Dir | Description |
|---|---|---|---|
| target_tport | mach_port_name_t | in | Port task de l'appelant (mach_task_self()). |
| pid | int | in | Identifiant du processus cible. |
| t | mach_port_name_t * | out | Reçoit le nom du port task (send right) en cas de succès. |
Historique des versions
Absent de toute version XNU publiée.
Stub utilisateur
arm64
; libsystem_kernel.dylib: _task_for_pid
mov x16, #-45
svc #0x80
retx86_64
mov eax, 0x100002D ; SYSCALL_CLASS_MACH | 45
syscall
retExemples
C — get task port for the active PID
mach_port_name_t target;
kern_return_t kr = task_for_pid(mach_task_self(), pid, &target);
if (kr != KERN_SUCCESS) {
fprintf(stderr, "task_for_pid: %s\n", mach_error_string(kr));
return 1;
}Notes
task_for_pid est gouverné par le job launchd taskgated, AMFI, et SIP. L'appelant doit être root, posséder l'entitlement com.apple.security.cs.debugger, l'entitlement get-task-allow sur la cible, ou avoir reçu les privilèges Developer Tools via Réglages Système → Confidentialité et sécurité. Avec un task port, le détenteur peut appeler vm_read / vm_write / thread_create / thread_set_state sur la cible — donc exécution arbitraire.
Détection
Endpoint Security expose ES_EVENT_TYPE_NOTIFY_GET_TASK et AUTH_GET_TASK depuis macOS 11. Les systèmes plus anciens peuvent hooker taskgated via MACF. Les refus apparaissent dans /var/log/system.log sous « Security policy would not allow process ».
Utilisation par les malwares
task_for_pid est l'entrée de presque tout outillage d'injection de code macOS (injection osascript, injection de dylib via mach_vm_allocate + thread_create_running). Les implants étatiques — DazzleSpy, ChromeLoader-mac, JokerSpy — enchaînent tous task_for_pid + mach_vm_write + thread_create_running. Un appel réussi sur une cible non-soi sans entitlement de debug est presque toujours suspect.
API associées
MITRE ATT&CK
Malware references
- DazzleSpy
- JokerSpy
- ChromeLoader (macOS variant)
Dernière vérification: 2026-05-25