Łączenie wywołań systemowych OS X

Muszę interweniować(pobierz moje funkcje zamiast oryginalnych funkcji) niektóre wywołania systemowe OS X w celu przezwyciężenia luki w oprogramowaniu z zamkniętym źródłem.

Najlepiej, aby wynikowe rozwiązanie działało w 10,5 (Leopard) i nowszym, ale jamoc być w stanie wymagać 10.6 (Snow Leopard), jeśli argument był wystarczająco silny.

Najlepiej byłoby, gdyby wynikowe rozwiązanie było wykonywalne, ale mogłem zadowolić się skryptem.

Najlepiej byłoby, gdyby wynikowe rozwiązanie mogło się przeniknąć(„ukraść wektory”) nawet po uruchomieniu aplikacji docelowej, ale mogę zadowolić się technologią, która musi się wstrzykiwać podczas ładowania aplikacji.

Najlepiej byłoby, gdyby powstałe rozwiązanie zostało opracowane w C lub C ++, ale mogłem zaakceptować Objective-C lub coś innego.

Do tej pory eksperymentowałem z:

1)DTrace skryptowanie, które wiele mnie nauczyło, ale ograniczenia języka D(ograniczona kontrola przepływu itp.) sprawiają, że poważnym bólem jest to, co robię, nie wspominając o tym, że rezultatem będzie scenariusz, który nie jest tak schludny i samowystarczalny, jak to robię.

2)DYLD_INSERT_LIBRARIES interpozycja, która jest śliska na wiele sposobów, ale być może ze względu na spłaszczanie przestrzeni nazw(Nie będę udawał, że głęboko rozumiem, co to znaczy), działa dobrze na prostsze pliki wykonywalne, ale sprawia, że ​​moja docelowa aplikacja się dławi, nawet gdy tworzę bibliotekę do niczego, która nie przenosi żadnych wywołań.

Moim najnowszym pomysłem jest eksperymentowaniemach_star (https://github.com/rentzsch/mach_star), ale najpierw zatrzymuję się tutaj, aby zapytać społeczność Stack Overflow, która niezmiennie wie więcej niż ja ...

... czy powinienem patrzeć na coś innego niż mach_star?

questionAnswers(1)

yourAnswerToTheQuestion