我想试用英特尔间接分支跟踪(IBT),这是英特尔CET控制流完整性增强方法的一个组件。gcc当前默认生成与IBT兼容的代码(注意endbr64指令)。但是,我不认为我有一个机器和/或Linux发行版与IBT可用的用户,而且似乎甚至Qemu 7.2.0不支持IBT。有没有什么现成的软件平台支持它?
endbr64
gr8qqesn1#
英特尔SDE(软件开发仿真器)支持许多扩展(通过JIT转换为较旧的CPU),可能还有这个. https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html。发行说明确实提到了对仿真CET的支持,以及对在CET主机上运行CET二进制文件的支持。要真正使用它,你需要在函数入口点使用endbr64编译的库。所以你至少要有一个静态的libc.a并与之链接。或者设置一个chroot或docker容器或其他什么的,如果你在任何机器上使用的发行版没有默认启用它,也许可以使用一些轻量级的发行版。Arch GNU/Linux确实为他们的包启用了它。
libc.a
1条答案
按热度按时间gr8qqesn1#
英特尔SDE(软件开发仿真器)支持许多扩展(通过JIT转换为较旧的CPU),可能还有这个. https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html。发行说明确实提到了对仿真CET的支持,以及对在CET主机上运行CET二进制文件的支持。
要真正使用它,你需要在函数入口点使用
endbr64
编译的库。所以你至少要有一个静态的libc.a
并与之链接。或者设置一个chroot或docker容器或其他什么的,如果你在任何机器上使用的发行版没有默认启用它,也许可以使用一些轻量级的发行版。Arch GNU/Linux确实为他们的包启用了它。