2015-10-05 103 views
2

我正在使用mach_inject做一些代码注入工作,但是当我升级到最新的OS X 10.11时,它停止工作,并且我跟踪它是由task_for_pid失败执行导致的,返回值为5. 安迪想法如何解决这个问题? 谢谢task_for_pid在OS X上停止工作10.11

+0

检查'/ etc/authorization'以确保您的应用程序被允许使用'task_for_pid'。其他相关的关键字:'taskgated'。 – icktoofay

+1

@icktoofay苹果已贬值/ etc的东西,我男人taskgated,根据男人的信息应该没问题,如果我设置SecTaskAccess并妥善签署代码,不幸的是,没有运气。我觉得苹果已经改变了一些东西,但没有及时更改文件。任何方式,非常感谢,我从这个信息了解了很多:) – hustyjfssss

回答

2

10.11的latest features之一是系统完整性保护,又称'无根'。

如前所述苹果: -

系统完整性保护

适用于每一个正在运行的进程,包括特权代码和代码运行了沙箱的新的安全策略。该策略将额外的保护扩展到磁盘上和运行时的组件,只允许系统安装程序和软件更新修改系统二进制文件。 不再允许对系统二进制文件的代码注入和运行时附件。

所以你有它,代码注入不再可能*。您可以disable this feature,,但要这样做需要启动到恢复模式并使用csrutil命令。

*假设你没有内核扩展!