Вставка системных вызовов OS X

Мне нужно вставить(вызвать мои функции вместо оригинальных функций)некоторые вызовы системы OS X для преодоления недостатка в программном обеспечении с закрытым -исходным кодом.

Желательно, чтобы полученное решение работало под 10.5 (Leopard )и новее, но я мог бы потребовать 10.6 (Snow Leopard ), если бы аргументы были достаточно сильными.

Предпочтительно, чтобы полученное решение было исполняемым, но я мог бы согласиться на сценарий.

Желательно, чтобы полученное решение могло вставлять("украсть векторы")даже после запуска целевого приложения, но я мог бы согласиться на технологию, которая должна внедряться во время загрузки приложения.

Желательно, чтобы полученное решение было разработано на C или C++, но я мог бы остановиться на Objective -C или на чем-то другом.

До сих пор я экспериментировал с:

1)Скрипты DTrace , которые многому меня научили, но ограничения языка D(ограниченное управление потоком и т. д.)сделать это большой проблемой для того, что я делаю, не говоря уже о том, что результатом будет сценарий, который не такой аккуратный и самодостаточный -, как то, к чему я стремлюсь.

2)DYLD _INSERT _LIBRARIES интерпозиция, которая во многих отношениях гладкая, но, возможно, из-за выравнивания пространства имен(Не буду делать вид, что глубоко понимаю, что это значит), он хорошо работает с более простыми исполняемыми файлами, но заставляет мое целевое приложение задыхаться, даже когда я создаю ничего -ничего не выполняющую библиотеку, которая на самом деле не вставляет никаких вызовов.

Моя последняя идея - поэкспериментировать со звездой Маха _(https://github.com/rentzsch/mach_star).,но сначала я остановлюсь здесь, чтобы спросить сообщество Stack Overflow, которое неизменно знает больше, чем я...

...должен ли я смотреть дальше на что-то, кроме звезды mach _?

5
задан bland328 17 July 2012 в 20:27
поделиться