2014-12-09 51 views
6

Bir uygulama (sistem uygulaması/sunucusu dahil) System Framework (CoreServices.framework) numaralı telefonu çağırdığında bildirim almam gerekiyor. Kod Enjeksiyonunun sistem çapında çerçevelerde çalışıp çalışmadığından emin değilim.Bir OS X sistem çerçevesi sistem çapında enjekte etmenin bir yolu var mı?

gerçek birine ileri ardından mesajlar Kendi kopya ile bir sistem çerçevesi yerine, ve mümkün mü?

+0

DTrace'ye yerleşik sistem düzeyi çağrılarının izlenmesi için mevcut birçok çalışma var. Herhangi bir şey enjekte etmeden sistem genelinde istediğinizi yapabilirsiniz. –

cevap

1

Sen DYLD_INSERT_LIBRARIES ortam değişkeni kullanabilirsiniz, ama bu sadece size geniş, sistem değil başlangıç ​​uygulamaları ile çalışır. Daha fazla bilgi here.

Sen mach_override ile sistem fonksiyonlarını geçersiz kılabilir, ancak kök privivaleges veya procmod grubunu gerektirir. mach_override, MacHack 2003'te piyasaya sürüldü. Hızlı bir bakış açısından, bir işlev çağrısı kadar kolay görünüyor.

mach_override_ptr(&orginalFunction, &overrideFunction, NULL); 

o sistem genelinde geçersiz kılma unutmayın kuvvetle olmayan ayıklama uygulamaları için önerilmez.

Related question.