David Monniaux
David Monniaux

Reputation: 2004

combination of distribution and CPU emulator for Intel CET

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

Answers (1)

Peter Cordes
Peter Cordes

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

Related Questions