[发明专利]堆栈溢出保护装置、堆栈保护方法、相关编译器和计算装置在审
| 申请号: | 201210041865.3 | 申请日: | 2012-02-22 |
| 公开(公告)号: | CN103294517A | 公开(公告)日: | 2013-09-11 |
| 发明(设计)人: | 蒋健;纪金松;官孝峰;张嗣元 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41 |
| 代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 金晓 |
| 地址: | 美国*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 堆栈 溢出 保护装置 保护 方法 相关 编译器 计算 装置 | ||
1.一种用于对输入代码提供堆栈溢出保护的装置,包括:
划分单元,被配置为将输入代码中的至少一个函数划分为包含字符串型操作的代码区域和不包含字符串型操作的代码区域;以及
堆栈保护单元,被配置为依据所述函数是否涉及字符串型操作,在包含字符串型操作的代码区域中设置堆栈保护,并且排除对所述函数中不涉及字符串型操作的部分的堆栈保护,其中,设置堆栈保护包括对该包含字符串型操作的代码区域加入保护码操作。
2.如权利要求1所述的堆栈溢出保护装置,所述划分单元被进一步配置为根据执行频率将所述包含字符串型操作的代码区域划分为高频代码区域和低频代码区域;以及
所述堆栈保护单元被进一步配置为在所述低频代码区域中设置堆栈保护。
3.如权利要求1所述的堆栈溢出保护装置,进一步包括:
外联单元,被配置为将包含字符串型操作的代码区域外联为所述函数的被调用函数;
所述堆栈保护单元被配置为在所述被调用函数中设置堆栈保护。
4.如权利要求3所述的堆栈溢出保护装置,所述划分单元被进一步配置为根据执行频率将所述包含字符串型操作的代码区域划分为高频代码区域和低频代码区域;以及
所述外联单元被进一步配置为将所述低频代码区域外联为所述函数的被调用函数。
5.如权利要求2或4所述的堆栈溢出保护装置,其中所述低频代码区域的执行频率低于预定阈值。
6.如权利要求4所述的堆栈溢出保护装置,其中在一个函数中存在多个低频字符串型操作且各低频字符串型操作之间不存在高频操作的情况下,所述外联单元适于将所述多个低频字符串型操作外联到一个被调用函数中。
7.如权利要求5所述的堆栈溢出保护装置,其中所述预定阈值是根据所述低频代码区域的执行频率的统计数据决定的。
8.如权利要求4所述的堆栈溢出保护装置,其中所述堆栈保护单元包括保护码应用单元,所述保护码应用单元被配置为在所述被调用函数中设置堆栈保护操作;
其中所述保护码应用单元根据所述函数和所述被调用函数的帧指针计算出设置堆栈保护操作的位置,并且根据所计算出的设置堆栈保护操作的位置,在所述被调用函数中设置堆栈保护操作。
9.一种用于对输入代码提供堆栈溢出保护的方法,包括:
将输入代码中的至少一个函数划分为包含字符串型操作的代码区域和不包含字符串型操作的代码区域;以及
依据所述函数是否涉及字符串型操作,在包含字符串型操作的代码区域中设置堆栈保护,并且排除对所述函数中不涉及字符串型操作的部分的堆栈保护,其中,设置堆栈保护包括对该包含字符串型操作的代码区域加入保护码操作。
10.如权利要求9所述的方法,进一步包括:
根据执行频率将所述包含字符串型操作的代码区域划分为高频代码区域和低频代码区域;以及
所述在包含字符串型操作的代码区域中设置堆栈保护包括:在所述低频代码区域中设置堆栈保护。
11.如权利要求9所述的方法,进一步包括:
将包含字符串型操作的代码区域外联为所述函数的被调用函数;
所述在包含字符串型操作的代码区域中设置堆栈保护包括:在所述被调用函数中设置堆栈保护。
12.如权利要求11所述的方法,进一步包括:
根据执行频率将所述包含字符串型操作的代码区域划分为高频代码区域和低频代码区域;以及
所述将包含字符串型操作的代码区域外联为所述函数的被调用函数包括:将所述低频代码区域外联为所述函数的被调用函数。
13.如权利要求10或12所述的方法,其中所述低频代码区域的执行频率低于预定阈值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210041865.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于E语言的配网模型增量入库方法
- 下一篇:一种信息处理的方法及电子设备





