5.2.2 控制流完整性(CFI)与影子栈 控制流完整性(Control-Flow Integrity, CFI)不是一道防火墙,也不是一个可开关的“安全模式”。它是程序运行时的骨骼与神经束——在每一个函数调用、每一次间接跳转、每一处虚表解引用发生之前,默默校验:“这条路,编译器允许你走吗?” 而影子栈(Shadow Stack),则是这条神经束中最敏锐的哨兵:它不参与主执行流,却在后台同步维护一份只读的、经签名验证的返回地址副本。当攻击者试图通过栈溢出篡改 或劫持 指令时,影子栈会在最后一刻发出警报——不是靠检测异常值,而是靠数学意义上的不可伪造性。