前边缘CFI与后边缘CFI之间的差异

  • 本文关键字:边缘 CFI 之间 security
  • 更新时间 :
  • 英文 :


我想知道前边缘CFI与后边缘CFI 之间的区别

前向边缘CFI在函数调用前检查,后向边缘CFI在函数调用后检查?

我很好奇前边缘CFI和后边缘CFI是什么意思。

您在问题中定义前边缘和后边缘的方式不太正确。乍一看,区别并不是很清楚,但在考虑实现时,它实际上非常重要!

由于后边缘更容易定义,让我们从这里开始:后边缘是在语义上类似于返回指令的东西。在x86和ARMv8中,我们有一条ret指令可以做到这一点,但在RISCV等其他ISA中,我们只有一条jr lr指令(实际上只是将链接寄存器传递给间接分支指令!(。然而,不管细节如何,语义上类似于返回的东西会将控制流发送回我们以前的任何地方。

前边缘基本上只是";所有不是后沿的东西";。这包括函数调用、直接分支和某些类型的间接分支(例如vtables和分支表,但值得注意的是,不是充当返回的间接分支!(都属于这一类。

相关内容

  • 没有找到相关文章