You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS上启用Arm指针认证码(PAC)?

在macOS上启用Arm Pointer Authentication Code (PAC) 特性

macOS确实会默认限制用户进程使用PAC指令,这是系统安全策略的一部分,需要通过以下步骤手动启用:

1. 添加PAC权限并签名二进制文件

macOS要求进程拥有com.apple.security.pointer-authentication权限才能使用PAC指令,因此需要给你的编译产物添加权限并签名:

  • 创建一个权限配置文件(比如命名为pac.entitlements),内容如下:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>com.apple.security.pointer-authentication</key>
        <true/>
    </dict>
    </plist>
    
  • 使用自签名证书为二进制文件添加权限并重新签名:
    codesign -s - --entitlements pac.entitlements pacia
    
    这里-s -表示使用本地自签名证书,足够用于本地测试场景。

2. 解决运行时权限问题(可选)

如果签名后运行程序仍提示权限错误,可通过以下方式处理:

  • 打开「系统设置」→「隐私与安全性」,在「安全性」栏找到你的程序,点击「允许」;
  • 若仍无法运行,可暂时禁用系统完整性保护(SIP):重启Mac并按住Command+R进入恢复模式,打开终端执行csrutil disable,重启后即可运行自签名程序。测试完成后建议重新启用SIP(执行csrutil enable)。

3. 验证PAC生效

运行签名后的pacia程序,即可观察到PACIA指令正常修改地址高位,AUTIA指令正确恢复原地址的预期行为。你也可以用vmmap <PID>命令查看进程内存映射,确认PAC相关的内存保护标志已启用。

注:macOS对PAC的权限限制是为了维持系统安全边界,仅允许可信进程使用该特性,因此用户自定义程序必须通过签名添加权限才能启用。

内容的提问来源于stack exchange,提问作者Thierry Lelegard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 21:50:36