我正在使用mach_inject来做一些代码注入工作,但是当我升级到最新的OS X 10.11时它停止工作,我追踪它是由task_for_pid执行失败引起的,返回值是5。 安迪想法如何解决这个问题? 感谢
答案 0 :(得分:2)
10.11的latest features之一是系统完整性保护,又名“无根”。
正如Apple所说: -
系统完整性保护
适用于每个正在运行的进程的新安全策略,包括特权代码和在沙箱中运行的代码。该策略在磁盘和运行时扩展了对组件的额外保护,仅允许系统安装程序和软件更新修改系统二进制文件。 不再允许对系统二进制文件进行代码注入和运行时附件。
所以你有它,代码注入不再可能*。你可以disable this feature,但是这样做需要启动进入恢复模式并使用csrutil命令。
*假设您没有内核扩展名!