Skip to content
Trap Mach#-15

svc · mach trap -15

_kernelrpc_mach_vm_map_trap

Point d'entrée trap qui implémente mach_vm_map — mappe un memory object (fichier, région partagée ou anonyme) dans l'espace d'adressage d'un task.

Prototype

kern_return_t _kernelrpc_mach_vm_map_trap(/* 6 args */);

Retour: kern_return_t

Historique des versions

XNU tagmacOS#
xnu-2422.115.4macOS 10.9 Mavericks-15
xnu-2782.40.9macOS 10.10 Yosemite-15
xnu-3247.1.106macOS 10.11 El Capitan-15
xnu-3789.1.32macOS 10.12 Sierra-15
xnu-4570.1.46macOS 10.13 High Sierra-15
xnu-4903.221.2macOS 10.14 Mojave-15
xnu-6153.11.26macOS 10.15 Catalina-15
xnu-7195.50.7.100.1macOS 11.0 Big Sur-15
xnu-8019.41.5macOS 12.0 Monterey-15
xnu-8792.41.9macOS 13.0 Ventura-15
xnu-10002.1.13macOS 14.0 Sonoma-15
xnu-11215.1.10macOS 15.0 Sequoia-15
xnu-11417.101.15macOS 15.4 Sequoia-15
xnu-12377.1.9macOS 26.0 Tahoe-15
xnu-10002.41.9-15
xnu-10002.61.3-15
xnu-10002.81.5-15
xnu-10063.101.15-15
xnu-10063.121.3-15
xnu-10063.141.1-15
xnu-11215.41.3-15
xnu-11215.61.5-15
xnu-11215.81.4-15
xnu-11417.121.6-15
xnu-11417.140.69-15
xnu-12377.101.15-15
xnu-12377.41.6-15
xnu-12377.61.12-15
xnu-12377.81.4-15
xnu-2422.1.72-15
xnu-2422.100.13-15
xnu-2422.110.17-15
xnu-2422.90.20-15
xnu-2782.1.97-15
xnu-2782.10.72-15
xnu-2782.20.48-15
xnu-2782.30.5-15
xnu-3247.10.11-15
xnu-3248.20.55-15
xnu-3248.30.4-15
xnu-3248.40.184-15
xnu-3248.50.21-15
xnu-3248.60.10-15
xnu-3789.21.4-15
xnu-3789.31.2-15
xnu-3789.41.3-15
xnu-3789.51.2-15
xnu-3789.60.24-15
xnu-3789.70.16-15
xnu-4570.20.62-15
xnu-4570.31.3-15
xnu-4570.41.2-15
xnu-4570.51.1-15
xnu-4570.61.1-15
xnu-4570.71.2-15
xnu-4903.231.4-15
xnu-4903.241.1-15
xnu-4903.270.47-15
xnu-6153.101.6-15
xnu-6153.121.1-15
xnu-6153.141.1-15
xnu-6153.41.3-15
xnu-6153.61.1-15
xnu-6153.81.5-15
xnu-7195.101.1-15
xnu-7195.121.3-15
xnu-7195.141.2-15
xnu-7195.60.75-15
xnu-7195.81.3-15
xnu-8019.61.5-15
xnu-8019.80.24-15
xnu-8020.101.4-15
xnu-8020.121.3-15
xnu-8020.140.41-15
xnu-8792.61.2-15
xnu-8792.81.2-15
xnu-8796.101.5-15
xnu-8796.121.2-15
xnu-8796.141.3-15

Notes

mach_vm_map est la primitive de mapping généraliste : l'appelant fournit un send right vers un memory object, un offset, une taille, un masque d'alignement, des protections initiale et maximale, l'héritage, et une adresse cible fixe ou libre. dyld l'utilise (indirectement, via vm_map_kernel) au chargement des dylibs depuis le cache partagé, et des frameworks comme CoreFoundation s'en servent pour créer des régions de mémoire partagée pour les charges utiles IPC. Le trap est l'entrée directe fast-path ; le slow-path passe par la routine MIG vm_map complète lorsqu'un descripteur memory_object_t doit être transmis dans un message Mach.

Détection

Sonde DTrace mach_trap uniquement. Les motifs suspects (mapping répété d'un même chemin dans de nombreux tasks, ou mapping de contenu non signé dans un processus hardened-runtime) se détectent au mieux en croisant les traces DTrace mach_vm_map et les événements codesign / AMFI du unified log.

API associées

_kernelrpc_mach_vm_allocate_trap_kernelrpc_mach_vm_protect_trap_kernelrpc_mach_vm_deallocate_trapmach_vm_mapmmap