Reputation: 2004
I would like to experiment with Intel indirect branch tracking (IBT), one component of Intel's CET control-flow integrity enhancement approach. gcc is currently generating code compatible with IBT by default (watch for endbr64
instructions).
However, I don't think I have a machine and/or Linux distribution with IBT usable in userland. It also seems that even Qemu 7.2.0 does not support IBT.
Is there any kind of easily available software platform that supports it?
Upvotes: 2
Views: 227
Reputation: 365342
Intel SDE (Software Development Emulator) supports many extensions (by JIT translation for older CPUs), possibly also this one. https://www.intel.com/content/www/us/en/developer/articles/tool/software-development-emulator.html . The release-notes do mention support for emulating CET, as well as support for running CET binaries on CET hosts.
To actually use it, you'll need libraries compiled with endbr64
at function entry points. So get your hands on at least a static libc.a
and link with that. Or set up a chroot or docker container or whatever, maybe with some lightweight distro, if the distro you're using on any of your machines doesn't enable it by default. Arch GNU/Linux does enable it for their packages.
Upvotes: 2