Durante mucho tiempo he ejecutado como sip -sin dtrace para usar dtrace y está bien, pero algunas aplicaciones de las que quiero leer datos se ejecutan en modo kernel (Little Snitch tiene varios componentes, por ejemplo). De cualquier forma que lo intente, obtengo un error de tiempo de compilación o ejecución al intentar tracemem (arg0), por ejemplo, en una sonda como
syscall::open:entry /app_is_Kmode/
....tracemem(arg0);....
run time invalid address (0x7fff5fbfdc30) in action #4
ACTUALMENTE: Detecto que las aplicaciones están en modo kernel OK ya que el seguimiento (ucaller) falla y detecto el error y tomo nota de dichas aplicaciones. Luego puedo usar una sonda que intente trabajar en modo kernel con esas aplicaciones, por ejemplo. no utilizando copyin () sino tracemem (). Parece que la protección de memoria o la implementación de dtrace está bloqueando mis intentos. Creo que stack () mostrará 2 cuadros en el espacio de símbolos del kernel ... así que hay un acceso limitado.
Pero, ¿qué causa mi problema y hay algo que pueda hacer?
Una posibilidad particular podría ser SIP, sin protección de depuración. Pero eso sería una interrupción bastante importante si lo intentara, ya que tengo una gran configuración de disco RAM en los últimos meses desde el último arranque con ACL, privs, etc. que sería difícil de reconstruir. No he podido encontrar ningún documento sobre qué está haciendo exactamente esa área de SIP. (Tal vez debería ser una pregunta diferente sobre el SIP, pero obviamente estoy interesado en el contexto de mi problema).