The patent badge is an abbreviated version of the USPTO patent document. The patent badge does contain a link to the full patent document.
The patent badge is an abbreviated version of the USPTO patent document. The patent badge covers the following: Patent number, Date patent was issued, Date patent was filed, Title of the patent, Applicant, Inventor, Assignee, Attorney firm, Primary examiner, Assistant examiner, CPCs, and Abstract. The patent badge does contain a link to the full patent document (in Adobe Acrobat format, aka pdf). To download or print any patent click here.
Patent No.:
Date of Patent:
Dec. 18, 2018
Filed:
Sep. 27, 2016
Microsoft Technology Licensing, Llc, Redmond, WA (US);
Jordan Thomas Rabet, Bellevue, WA (US);
Kenneth D. Johnson, Bellevue, WA (US);
Matthew R. Miller, Seattle, WA (US);
Adam M. Zabrocki, Bellevue, WA (US);
Shawn Daniel Hoffman, Seattle, WA (US);
Landy Wang, Honolulu, HI (US);
Yevgeniy M. Bak, Redmond, WA (US);
Microsoft Technology Licensing, LLC, Redmond, WA (US);
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.