-
公开(公告)号:US09672351B2
公开(公告)日:2017-06-06
申请号:US14612067
申请日:2015-02-02
Applicant: QUALCOMM Incorporated
Inventor: Arvind Krishnaswamy , Can Acar , Robert Turner
CPC classification number: G06F21/52 , G06F11/10 , G06F12/0875 , G06F15/7846 , G06F21/44 , G06F21/51 , G06F2212/451
Abstract: A method of producing a control stack includes: writing a plurality of control information entries into a control stack buffer that is internal to a processor in response to one or more function calls; and in response to the control stack buffer being full and receiving a further function call, writing: the plurality of control information entries to an external memory that is external to the processor; and a further control information entry, corresponding to the further function call, to the control stack buffer.
-
公开(公告)号:US09514305B2
公开(公告)日:2016-12-06
申请号:US14517572
申请日:2014-10-17
Applicant: QUALCOMM Incorporated
Inventor: Can Acar , Arvind Krishnaswamy , Robert Turner
CPC classification number: G06F21/56 , G06F21/52 , G06F21/554
Abstract: Techniques for enforcing flow control of a software program in a processor are provided. An example method according to these techniques includes analyzing program code of the software program to identify a code pointer in the program code, generating an authentication tag based on the code pointer, and modifying the code pointer in the program code with the authentication tag to generate a tagged code pointer.
Abstract translation: 提供了用于在处理器中执行软件程序的流控制的技术。 根据这些技术的示例性方法包括分析软件程序的程序代码以识别程序代码中的代码指针,基于代码指针生成认证标签,并用认证标签修改程序代码中的代码指针以产生 一个标记的代码指针。
-
公开(公告)号:US11055402B2
公开(公告)日:2021-07-06
申请号:US16142611
申请日:2018-09-26
Applicant: QUALCOMM Incorporated
Inventor: Can Acar , Robert Turner , Alexander Gantman
Abstract: A method is provided for safely executing dynamically generated code to avoid the possibility of an attack in unprotected memory space. Upon ascertaining that dynamically generated code is to be executed, a processing circuit and/or operating system kernel restrict the dynamically generated code to use a first memory region within an unprotected memory space, where the first memory region is distinct (e.g., reserved) from other memory regions used by other processes executed by the processing circuit. A first processing stack is maintained for the dynamically generated code within the first memory region. This first processing stack is separate from a general processing stack used by other processes executed by the processing circuit. A stack pointer is switched/pointed to the first processing stack when the dynamically generated code is executed and the stack pointer is switched/pointed to the general processing stack when the dynamically generated code ends.
-
-