经我研究, 之前提到的RISC-V Linux的Clang CFI无效的问题, 是由于Clang CFI的icall部分还未对RISC-V提供相关支持, 主要为跳转表的支持。然后, 在进行CFI相关的程序插桩时, icall部分就被静默地关闭了, 而Linux内核中也没有vcall。
在我实现RISC-V上的跳转表后, Clang CFI好用了。
此外, 我已将相关修改的patch提交至LLVM项目: https://reviews.llvm.org/D106888。
经我研究, 之前提到的RISC-V Linux的Clang CFI无效的问题, 是由于Clang CFI的icall部分还未对RISC-V提供相关支持, 主要为跳转表的支持。然后, 在进行CFI相关的程序插桩时, icall部分就被静默地关闭了, 而Linux内核中也没有vcall。
在我实现RISC-V上的跳转表后, Clang CFI好用了。
此外, 我已将相关修改的patch提交至LLVM项目: https://reviews.llvm.org/D106888。
本文链接:https://twd2.me/archives/15883
发表评论