[发明专利]用于独立定义的操作的堆栈安全在审
申请号: | 201880062179.X | 申请日: | 2018-08-24 |
公开(公告)号: | CN111133419A | 公开(公告)日: | 2020-05-08 |
发明(设计)人: | N·B·埃斯善斯;F·卡鲁热 | 申请(专利权)人: | 路创技术有限责任公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 邹丹 |
地址: | 美国宾*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 独立 定义 操作 堆栈 安全 | ||
本发明公开了用于当一个应用程序调用另一个应用程序时在与相应的应用程序相关联的堆栈之间进行交换或改变的系统和方法。
相关申请的交叉引用
本申请要求于2017年8月24日提交的美国临时专利申请号62/549,637的权益,该临时专利申请的全部内容以引用的方式并入本文。
背景技术
当计算设备执行进行函数调用的应用程序时,计算设备可以在进行函数调用时使用堆栈来存储例如寄存器值、函数参数值、返回地址和局部变量。
发明内容
根据一个示例,一种装置可以包括至少一个处理器,并且还可以包括通信地耦合到该至少一个处理器的至少一个有形存储器模块。该至少一个有形存储器模块可以已经在其上存储有第一应用程序的软件指令和第二应用程序的软件指令,其中第二应用程序可以包括第一函数和第二函数,并且其中第一应用程序可以具有与其相关联的第一堆栈,并且第二应用程序可以具有与其相关联的第二堆栈。第一应用程序和第二应用程序的软件指令在由至少处理器执行时可以指引至少一个处理器执行第一应用程序,其中在执行第一应用程序时,堆栈指针寄存器可以指向第一堆栈。软件指令在由至少处理器执行时可以进一步指引该至少处理器在执行第一应用程序时调用第二应用程序的第一函数,其中调用该第一函数可以包括将数据值推送到第一堆栈上,并且其中堆栈指针寄存器可以在将数据值推送到第一堆栈上之后指向第一堆栈。软件指令在由至少一个处理器执行时可以进一步指引至少处理器执行第一函数,其中执行该第一函数可以包括确定堆栈指针寄存器是正在指向第一堆栈还是正在指向第二堆栈。至少部分地基于确定堆栈指针寄存器正在指向第一堆栈,软件指令在由至少处理器执行时可以进一步指引至少处理器使堆栈指针寄存器从指向第一堆栈改变为指向第二堆栈。当软件指令由至少处理器执行时可以进一步指引至少处理器从第一函数调用第二函数,使用第二堆栈执行第二函数,在第二函数完成时,将堆栈指针寄存器从指向第二堆栈改变为指向第一堆栈,返回第一应用程序,并且继续使用第一堆栈执行第一应用程序。
根据另一个示例,一种装置可以包括至少一个处理器,并且还可以包括通信地耦合到该至少一个处理器的至少一个有形存储器模块。该至少一个有形存储器模块可以在其上存储有第一应用程序的软件指令和第二应用程序的软件指令。软件指令在由至少处理器执行时可以指引至少一个处理器执行第一应用程序,并且在执行第一应用程序时,调用第二应用程序的第一函数,其中调用第一函数可以包括将数据值推送到第一堆栈上,并且其中堆栈指针寄存器可以在推送数据值之后指向第一堆栈。软件指令在由至少处理器执行时可以进一步指引至少处理器在执行第一函数时将堆栈指针寄存器从指向第一堆栈改变为指向第二堆栈。软件指令在由至少处理器执行时可以进一步指引至少处理器将位于第一堆栈上的第一数据值从第一堆栈复制到第二堆栈,调用第二应用程序的第二函数,并且使用第二堆栈执行第二函数。在第二函数完成时,软件指令在由至少处理器执行时可以进一步指引至少处理器将堆栈指针寄存器从指向第二堆栈改变为指向第一堆栈。软件指令在由至少处理器执行时可以进一步指引至少处理器将位于第二堆栈上的第二数据值从第二堆栈复制到第一堆栈,返回第一应用程序,并且使用第一堆栈继续执行第一应用程序。
以上优点和特征仅仅是代表性实施方案。它们不被视为是限制。在以下描述、附图和权利要求书中,实施方案的附加特征和优点将变得显而易见。
附图说明
图1示出了示例性计算设备。
图2示出了图1的计算设备的示例性存储器配置。
图3示出了图1的计算设备的另一个示例性存储器配置,并且特别地,示出了调用第二函数的第一函数的示例性执行,其中第一函数和第二函数驻留在不同的存储器分段中。
图4示出了示例性代码序列,该示例性代码序列包括在执行函数之前从第一堆栈交换或改变到第二堆栈,使用第二堆栈执行该函数,然后一旦该函数完成,就从第二堆栈交换回第一堆栈。
图5示出了可以在执行函数之前执行的从第一堆栈交换或改变到第二堆栈的示例性过程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于路创技术有限责任公司,未经路创技术有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880062179.X/2.html,转载请声明来源钻瓜专利网。