可以在 iOS/Mac 上挂接吗?

发布于 2024-12-03 13:13:56 字数 78 浏览 2 评论 0原文

是否可以在 iOS/Mac-OSx 中开发需要在 iOS/Mac 中挂钩的应用程序(类似于我们在 Windows 中的应用程序)?它有多复杂?

Is it possible to develop apps in iOS/Mac-OSx which needs hooking in iOS/Mac (similar to what we have in windows)? and how complex is it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

£噩梦荏苒 2024-12-10 13:13:56
  • 如果你想在MacOSX中挂接第三方应用程序,可以通过InputManager。
    请参阅 SIMBL 插件,它可以通过为您管理 InputManager 或 ApplicationEnhencer 来帮助完成此操作。
    更多信息

  • 如果您想拦截您自己的应用程序内的调用,例如当调用方法(可能是系统方法)时,您可以使用 objc_exchangeImplementations 进行类构成(已过时)或方法混合。这也适用于 iOS 应用程序。 更多信息
    无论如何都要小心,这可能是危险的,你必须知道你在做什么(避免无限调用循环等)

  • 在 MacOSX 上,你也可以像在任何 UNIX 系统上一样进行 C 拦截,以拦截系统调用。但它有点棘手和低级(和系统范围)

  • If you want to hook a third-party app in MacOSX, it is possible thru InputManager.
    See the SIMBL plugin that helps doing this by managing the InputManagers for you, or ApplicationEnhencer.
    More info here

  • If you want to intercept a call inside your own app, e.g. when a call to a method (possibly a system method), you can do class posing (obsolete) or method swizzling using objc_exchangeImplementations. This also works on iOS apps. More info here.
    Be careful anyway with this, this can potentially be dangerous, you have to know what you are doing (avoid infinite call loops, etc)

  • On MacOSX, you can also do C interception like on any UNIX system, to intercept system calls. But it is a bit more tricky and low-level (and system-wide)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文