Ho a lungo eseguito sip -without dtrace per usare dtrace e questo va bene ma alcune app voglio leggere i dati da vedere per l'esecuzione in modalità kernel (Little Snitch ha diversi componenti per esempio). Qualunque sia il modo in cui cerco di ottenere un errore di compilazione o di run time durante il tentativo di tracemem (arg0), ad esempio, in un probe come
syscall::open:entry /app_is_Kmode/
....tracemem(arg0);....
run time invalid address (0x7fff5fbfdc30) in action #4
PRESENTLY: Rilevo le app che sono in modalità kernel OK dato che trace (ucaller) fallisce e rilevo l'errore e noto tali app. Posso quindi utilizzare un probe che tenta di lavorare in modalità kernel con quelle app, ad es. non usando copyin () ma tracemem (). Sembra che la protezione della memoria o l'implementazione di dtrace stiano bloccando i miei tentativi. Penso che stack () mostrerà 2 frame nello spazio dei simboli del kernel ... quindi c'è un accesso limitato.
Ma cosa causa il mio problema, e c'è qualcosa che posso fare?
Una possibilità particolare potrebbe essere quella di SIP - senza la protezione di debug. Ma questo sarebbe un grosso problema per provare come ho una grande installazione di ramdisk negli ultimi mesi dall'ultimo avvio con ACL, privs ecc che sarebbe difficile da ricostruire. Non sono stato in grado di trovare alcun documento su cosa esattamente quell'area di SIP sta facendo. (Forse dovrebbe essere una domanda diversa puramente SIP ma ovviamente sono interessato al contesto del mio problema.)