OS X System Call Interoperability

I need to insert (call my functions instead of the original functions) some OS X system calls in order to overcome the lack of closed source software.

It is desirable that the resulting solution work under 10.5 (Leopard) and newer, but I could require 10.6 (Snow Leopard) if the argument were strong enough.

Preferably, the resulting solution will be executable, but I can agree to the script.

It is desirable that the resulting solution could insert (“steal the vectors”) even after launching the target application, but I could agree to a technology that should introduce itself when the application loads.

Preferably, the resulting solution will be developed in C or C ++, but I can agree to Objective-C or something else.

So far I have experimented with:

1) DTrace , which taught me a lot, but the limitations of the D language (limited flow control, etc.) make it the main pain for what I do, and not mention that the result will be a script that is not so neat and self-sufficient like what I'm shooting.

2) DYLD_INSERT_LIBRARIES , which glides in many ways, but perhaps due to the smoothing of the namespace (I will not pretend to deeply understand what this means), it works great with simpler executables, but makes my target application crushed even when I create a do-nothing library that does not actually insert any calls.

My last idea is to experiment with mach_star ( https://github.com/rentzsch/mach_star ), but I stop here first to ask a community that always knows more than me ...

... should I look at something besides mach_star next?

+5
source share
1 answer

, , mach_star.

, link-loader darwin .., DYLD. , , , . , - , , . , , , . , , .

, , , . 11 , -, , , , 10.5 10.8 ... mach_star . , ?

, mach_star Intel. , - ish, x86_64 10.7 Xcode 4 ..

+3

All Articles