有没有办法在系统范围内注入OS X系统框架?

xha*_*han 7 macos hook objective-c code-injection objective-c-runtime

当应用程序(包括系统应用程序/服务器)调用System Framework(CoreServices.framework)时,我需要得到通知.我不确定Code Injection是否适用于系统范围的框架.

是否可以用我自己的副本替换系统框架,然后将消息转发给真实的副本?

Jad*_*dar 2

您可以使用DYLD_INSERT_LIBRARIES环境变量,但这仅适用于您启动的应用程序,不适用于系统范围。更多信息请点击这里

您可以使用mach_override覆盖系统功能,但它需要 root 权限或 procmod 组。mach_override 是在 MacHack 2003 上发布的。乍一看,它看起来就像一个函数调用一样简单。

mach_override_ptr(&orginalFunction, &overrideFunction, NULL);
Run Code Online (Sandbox Code Playgroud)

请注意,强烈建议不要对非调试应用程序进行系统范围的覆盖。

相关问题