插入OS X系统调用

bla*_*328 5 macos dtrace library-interposition function-interposition interposing

我需要插入(调用我的函数而不是原始函数)一些OS X系统调用来克服一个闭源软件中的缺陷.

最好,得到的解决方案可以在10.5(Leopard)和更新的情况下工作,但如果论证足够强大,我可能需要10.6(Snow Leopard).

最好,得到的解决方案是可执行的,但我可能会选择一个脚本.

优选地,即使在目标应用程序运行之后,所得到的解决方案也能够插入("窃取向量"),但是我可以解决在应用程序加载时必须注入其自身的技术.

优选地,所得到的解决方案将用C或C++开发,但我可以解决Objective-C或其他问题.

到目前为止,我已经尝试过:

1)DTrace脚本,它教会了我很多,但D语言的局限性(有限的流量控制等)使它成为我正在做的事情的主要痛苦,更不用说结果将是一个脚本,这不像我正在拍摄的那样整洁和自足.

2)DYLD_INSERT_LIBRARIES插入,在很多方面很流行,但可能是由于命名空间扁平化(我不会假装深刻理解这意味着什么),它可以很好地对付更简单的可执行文件,但是使我的目标应用程序阻塞,即使我构建一个没有实际插入任何调用的无用库.

我的最新想法是尝试使用mach_star(https://github.com/rentzsch/mach_star),但我先停在这里,要求Stack Overflow社区,它总是比我更了解...

......我接下来除了马赫星之外还应该看一些东西吗?