[发明专利]检测计算环境的堆栈的损坏的方法、系统和计算机程序产品有效
| 申请号: | 201680076585.2 | 申请日: | 2016-12-23 |
| 公开(公告)号: | CN108475223B | 公开(公告)日: | 2021-04-20 |
| 发明(设计)人: | M.K.格施温德;K.杜瓦尔圣;V.萨拉普拉 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F11/00 | 分类号: | G06F11/00;G06F21/52 |
| 代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 王珊珊 |
| 地址: | 美国纽*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 检测 计算 环境 堆栈 损坏 方法 系统 计算机 程序 产品 | ||
1.一种用于检测计算环境的堆栈的损坏的计算机程序产品,所述计算机程序产品包括:
计算机可读存储介质,所述计算机可读存储介质可由处理电路读取并存储用于由所述处理电路运行的方法的指令,以执行方法包括:
确定调用例程和在计算环境的处理器上运行的被调用例程是否支持使用防护字来保护返回地址;
基于确定所述调用例程和所述被调用例程支持使用防护字来保护返回地址,由所述被调用例程检查由所述调用例程提供的防护字,其中所述调用例程调用了所述被调用例程,并且所述防护字被存储在所述调用例程的堆栈中并且保护通过硬件指令直接存储到堆栈中的返回地址;
基于所述检查确定所述防护字是否具有期望值;和
基于确定防护字具有意外值,提供堆栈损坏的指示。
2.如权利要求1所述的计算机程序产品,其中至少所述检查和所述确定所述防护字是否具有期望值是通过由所述被调用例程发布的指令来执行的。
3.如权利要求2所述的计算机程序产品,其中所述方法还包括运行所述指令,所述运行包括:
从堆栈中获得防护字;
移动堆栈的堆栈指针,使得防护字不再出现在堆栈上;和
执行确定所述防护字是否具有期望值,检查和提供指示中的一个或多个。
4.根据权利要求1所述的计算机程序产品,其中所述防护字是使用指定防护字地址的存储防护字指令提供的。
5.如权利要求1所述的计算机程序产品,其中所述方法进一步包括:
使用存储防护字指令提供防护字;和
设置一个指示器来指示调用例程支持使用防护字来保护返回地址。
6.如权利要求1所述的计算机程序产品,其中,所述方法还包括基于确定所述调用例程和所述被调用例程的至少一个例程不支持使用防护字来保护返回地址,在检查之前终止处理。
7.如权利要求1所述的计算机程序产品,其中确定调用例程和在计算环境的处理器上运行的被调用例程是否支持使用防护字来保护返回地址包括检查至少一个指示符。
8.如权利要求7所述的计算机程序产品,其中,所述至少一个指示符被存储在指示符的向量中。
9.一种用于检测计算环境的堆栈的损坏的计算机系统,所述计算机系统包括:
存储器;和
与所述存储器通信的处理器,其中所述计算机系统被配置为执行一种方法,所述方法包括:
确定调用例程和在计算环境的处理器上运行的被调用例程是否支持使用防护字来保护返回地址;
基于确定所述调用例程和所述被调用例程支持使用防护字来保护返回地址,由所述被调用例程检查由所述调用例程提供的防护字,其中所述调用例程调用了所述被调用例程,并且所述防护字被存储在所述调用例程的堆栈中并且保护通过硬件指令直接存储到堆栈中的返回地址;
基于所述检查确定所述防护字是否具有期望值;和
基于确定防护字具有意外值,提供堆栈损坏的指示。
10.如权利要求9所述的计算机系统,其中至少所述检查和所述确定所述防护字是否具有期望值是经由所述被调用例程发出的指令来执行的,并且其中所述方法还包括运行所述指令,所述运行包括:
从堆栈中获得防护字;
移动堆栈的堆栈指针,使得防护字不再出现在堆栈上;和
执行确定所述防护字是否具有期望值,检查和提供指示中的一个或多个。
11.根据权利要求9所述的计算机系统,其中使用指定所述防护字的地址的存储防护字指令来提供所述防护字。
12.如权利要求9所述的计算机系统,其中该方法还包括:
使用存储防护字指令提供防护字;和
设置指示器来指示调用例程支持使用防护字来保护返回地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680076585.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:车载更新装置、更新系统及更新处理程序
- 下一篇:车载用控制系统





