[go: nahoru, domu]

Jump to content

Indirect branch tracking

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by The Anome (talk | contribs) at 10:43, 23 February 2024 (names of instructions). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Indirect branch tracking (IBT), also known as branch target identification (BTI) is a control flow integrity mechanism implemented on some Intel x86-64 and ARM-64 processors. IBT is designed to protect against computer security exploits that use indirect branch instructions to jump into code in unintended ways, such as return-oriented programming.

It creates a special "branch target" instructions that have no function other than to mark a location as a valid indirect branch target, with the processor capable of being put into a mode where it will raise an exception if an indirect branch is made to a location without a branch target instruction.

Implementations

On Intel processors, the technique is known as Indirect Branch Tracking (IBT), with the "end branch" instructions {{tt|endbr32} and endbr64 acting as the branch target instructions.[1] The similar technology on ARM-64 processors is called Branch Target Identification (BTI).[2]

References

  1. ^ Corbet, Jonathan (March 31, 2022). "Indirect branch tracking for Intel CPUs". lwn.net. Retrieved 2023-07-14.
  2. ^ "Documentation – Arm Developer". developer.arm.com. December 2021. Retrieved 2023-07-14.