gpt4 book ai didi

swift - 苹果操作系统 : is there any way to sniff system open call without kernel

转载 作者:搜寻专家 更新时间:2023-10-31 22:39:15 25 4
gpt4 key购买 nike

我必须从 Mac OS 中的任何位置打开一个文件,并且我想在它在任何相关应用程序中打开之前执行一些操作。有什么办法可以嗅探系统open call并保持一段时间,然后进行一些操作。

例如,我正在打开test.doc文件,它将在msword应用程序中打开,或者可以通过右键单击并选择任何其他应用程序打开。在我的 text.doc 文件上启动此 ms word 应用程序或任何相关应用程序(系统打开调用)之前,我想等待并执行一些操作。

Mac OS (C/C++/ObjectiveC/Swift) 的编程语言有没有办法不用进入内核?

任何帮助将不胜感激。

最佳答案

据我所知,完全拦截/ Hook 系统调用只能在 kext 中完成。

如果它是针对特定应用程序的,并且该应用程序支持动态加载的插件,您可以编写一个 Hook 系统调用的插件。

原则上,即使应用程序不支持插件,您也可以将代码注入(inject)进程并挂接该进程的 open() 系统调用。 (例如使用 mach_inject)这样做的缺点是如果例如用户双击 Finder 中的文件,这将启动应用程序并立即打开文件,只有非常短的时间窗口可以注入(inject)代码。我认为没有一种方法可以仅使用用户空间代码可靠地完成此操作。

关于swift - 苹果操作系统 : is there any way to sniff system open call without kernel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com