欢迎访问 内存溢出 —— 独立后端与系统工程技术博客

专注于分布式系统、Linux内核、数据库存储与后端工程实践

二进制漏洞缓解:CFI 控制流完整性与 CET 影子栈

发表于:|最后更新:|分类:二进制安全|阅读:2394 次

控制流完整性(CFI) 在编译期插入类型校验,阻止攻击者将间接调用跳转到非预期函数;Intel CET 的 Shadow Stack 则在硬件层保存返回地址副本,抵御 ROP 返回地址篡改。

ROP 与影子栈

一、GCC 启用 CFI 与 CET 编译

bash
# 启用细粒度 CFI(需 LTO)与 CET 影子栈
gcc hardened.c -o hardened \
    -flto \
    -fcf-protection=full \
    -fsanitize=cfi \
    -fvisibility=hidden