6.2.2.1 返回地址保护 你有没有在凌晨三点,盯着 GDB 里一串无法复现的 崩溃日志,看着 却连栈帧都捞不起来? 有没有在交付前最后一刻,被渗透测试团队甩来一份报告:“ 成功绕过所有保护,RIP 被篡改,PAC 验证未生效”——而你的编译器明明加了 ,链接器也启用了 ? 有没有在 里翻了两小时,发现关键函数末尾的 指令前,竟没有一条 或 指令? 这不是玄学。这是 PAC(Pointer Authentication Code)在返回地址保护这一最基础、最核心场景下的“静默失效”——它不报错,不告警,不崩溃,只在攻击者按下回车的那一刻,把你的 的返回地址悄悄替换成 ,然后优雅地 进去。 我们今天不谈 PAC 的密码学原理,不列 ARMv8.3-A 架构手册第 D13.3.