2009-08-11 83 views

回答

5

你不需要root才能使用mach_inject;相反,你需要签署你的代码。仅用于测试目的(并在10.4/10.5中),您还可以使您的应用程序setgid procmod。

查看TN2206了解更多信息。

3

老问题,但不正确的答案:

除非你自己的PID /任务,你其实需要是超级用户或者是procmod的成员。在OS X中,这与代码签名无关。 Mach_inject/Mach_star使用Mach陷阱task_for_pid(),它需要上述权限。在iOS中,您还需要相应的授权(task_for_pid-allow),这是代码签名派上用场的地方(使用ldid进行自签名)。