MacOS 创建处于挂起状态的进程
Posted
技术标签:
【中文标题】MacOS 创建处于挂起状态的进程【英文标题】:MacOS Create a Process in suspended state 【发布时间】:2015-10-14 10:47:38 【问题描述】:用例
-
在挂起模式下创建一个新进程(运行任意应用程序)(使用例如 exec)
已创建进程(已加载 MachO)但没有执行任何单行代码
使用挂起的进程内存做一些事情
恢复进程
在windows上,一旦可以使用CreateProcess结合“CREATE_SUSPENDED”来实现上述。
是否有适用于 MacOS 的“CREATE_SUSPENDED”C++/Obj-C 等价物??? (在挂起模式下创建的 NSTask 相当于我正在寻找的)
【问题讨论】:
你想用子进程的内存做什么? 注入专用代码 哦,这是个好问题。我不知道如何直接执行此操作,但您可能会查看 Dyninst 的 processCreate() 函数是如何工作的。您可能会发现 Dyninst 通常对您的目的很有用。 【参考方案1】:您可以将posix_spawn()
与POSIX_SPAWN_START_SUSPENDED
的生成属性一起使用。
使用起来有点麻烦,但会做你想做的事,但是我不确定你如何访问子进程的内存。
【讨论】:
以上是关于MacOS 创建处于挂起状态的进程的主要内容,如果未能解决你的问题,请参考以下文章
操作系统(二 )| 进程管理初探(前趋图程序执行进程的定义特征基本状态,进程的创建终止,阻塞唤醒,挂起激活)