Patent · US Active

Return flow guard using control stack identified by processor register

US10157268B2 · kind B2 · utility

1Cited by
2References
20Claims
0Family size

Assignee

Inventors

Key dates

Filing dateSep 27, 2016
Grant dateDec 18, 2018
Priority date
Expiry dateMar 9, 2037

Classification

  • Technology area (CPC G)Physics
  • CPC primaryG06F21/566
  • WIPO fieldComputer technology
  • WIPO sectorElectrical engineering

Abstract

Each program thread running on a computing device has an associated data stack and control stack. A stack displacement value is generated, which is the difference between the memory address of the base of the data stack and the memory address of the base of the control stack, and is stored in a register of a processor of the computing device that is restricted to operating system kernel use. For each thread on which return flow guard is enabled, prologue and epilogue code is added to each function of the thread (e.g., by a memory manager of the computing device). The data stack and the control stack each store a return address for the function, and when the function completes the epilogue code allows the function to return only if the return addresses on the data stack and the control stack match.

Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.