2014-12-09 13 views
6

Devo ricevere una notifica quando un'app (inclusa app/server di sistema) chiama System Framework (CoreServices.framework). Non sono sicuro che Code Injection funzioni su framework a livello di sistema.C'è un modo per iniettare un sistema di sistema OS X a livello di sistema?

È possibile sostituire un framework di sistema con la mia copia e inoltrare i messaggi a quello reale?

+0

C'è un sacco di lavoro esistente per tracciare le chiamate a livello di sistema integrate in DTrace. Potresti riuscire a fare ciò che vuoi sul sistema senza iniettare nulla. –

risposta

1

È possibile utilizzare la variabile di ambiente DYLD_INSERT_LIBRARIES, ma funziona solo con le applicazioni avviate, non su tutto il sistema. Maggiori informazioni here.

È possibile eseguire l'override delle funzioni di sistema con mach_override, ma richiede privilegi di root o il gruppo procmod. mach_override è stato rilasciato su MacHack 2003. Da una rapida occhiata, sembra facile come una chiamata a una funzione.

mach_override_ptr(&orginalFunction, &overrideFunction, NULL); 

prega di notare che prioritario a livello di sistema è fortemente sconsigliato per le applicazioni non-debug.

Related question.

Problemi correlati