我需要干预(让我的函数调用,而不是原来的功能)一些OS X系统调用来克服在一块封闭源代码软件的一个漏洞。
优选地,得到的解决方案将10.5(Leopard)的和更新下工作,但我也许能需要10.6(雪豹)如果参数有足够的力量。
优选地,得到的解决方案是一个可执行文件,但我会满足于一个脚本。
优选地,得到的解决方案是能够干预甚至目标应用程序运行之后(“偷矢量”),但我会满足于作为加载应用程序必须注入自己的技术。
优选地,得到的解决方案将使用C或C ++来开发,但我可以勉强接受的Objective-C或别的东西。
到目前为止,我已经尝试过:
1) 的DTrace脚本,这已经教会了我很多,但d语言的局限性(流控制等),使之成为我在做什么,更何况,其结果将是一个脚本,一个重大的痛苦,这是不一样整洁和自足的就是我拍摄的。
2)DYLD_INSERT_LIBRARIES介入,这是华而不实的方法很多,但也许由于命名空间压扁(我不会假装深刻理解这是什么意思),它很好地反对简单的可执行文件,但使我的目标应用呛,甚至当我建立一个什么都不做库实际上不干预任何来电。
我最近的想法是mach_star(实验https://github.com/rentzsch/mach_star ),但我第一次在这里停,问堆栈溢出社区里面总是知道的比我...
......我应该寻找除mach_star未来的东西吗?