[发明专利]一种实现压栈和弹栈的方法和装置有效
| 申请号: | 201610012520.3 | 申请日: | 2016-01-08 |
| 公开(公告)号: | CN105700851B | 公开(公告)日: | 2018-06-01 |
| 发明(设计)人: | 肖洪琨;熊燕萍 | 申请(专利权)人: | 大唐微电子技术有限公司;大唐半导体设计有限公司 |
| 主分类号: | G06F9/30 | 分类号: | G06F9/30 |
| 代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 韩辉峰;李丹 |
| 地址: | 100094*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 校验 对象引用 弹栈 方法和装置 压栈指令 压栈 读取 指令 返回 合并 写入 攻击 | ||
1.一种实现压栈和弹栈的方法,其特征在于,包括:
接收到压栈指令push Reference时,根据压栈指令push Reference中的第一对象引用计算第一校验值,对第一校验值和第一对象引用进行合并,将合并后的数据按序写入到栈中;
接收到弹栈指令pop Reference时,按照先进后出的原则从栈中读取数据,获取读取的数据中的第二校验值和第二对象引用,根据获得的第二对象引用计算第三校验值,判断出计算得到的第三校验值和获得的第二校验值相同,返回获得的第二对象引用;
其中,所述根据压栈指令push Reference中的第一对象引用计算第一校验值包括将所述第一对象引用进行按位取反得到所述第一校验值;所述根据获得的第二对象引用计算第三校验值包括将所述第二对象引用进行按位取反得到所述第三校验值;或者,
所述根据压栈指令push Reference中的第一对象引用计算第一校验值包括将所述第一对象引用按位与预设值进行预设操作得到所述第一校验值;所述根据获得的第二对象引用计算第三校验值包括将所述第二对象引用按位与预设值进行预设操作得到所述第三校验值。
2.根据权利要求1所述的方法,其特征在于,当判断出所述第三校验值和所述第二校验值不相同时,该方法还包括:抛出异常。
3.根据权利要求1或2所述的方法,其特征在于,当接收到压栈指令push short或pushint时,该方法还包括:
将接收到的压栈指令push short或push int中的数据按序写入到所述栈中。
4.根据权利要求1或2所述的方法,其特征在于,
所述对第一校验值和第一对象引用进行合并包括:将所述第一校验值置于所述第一对象引用之前或之后;
所述获取读取的数据中的第二校验值和第二对象引用包括:
获取所述读取的数据的前M位得到所述第二校验值,获取所述读取的数据的后N位得到所述第二对象引用;或者,
获取所述读取的数据的后M位得到所述第二校验值,获取所述读取的数据的前N位得到所述第二对象引用;
其中,M为所述第二校验值的位数,N为所述第二对象引用的位数。
5.一种实现压栈和弹栈的装置,其特征在于,至少包括:
接收模块,用于接收到压栈指令push Reference时,向处理模块发送压栈指令pushReference;接收到弹栈指令pop Reference时,向处理模块发送通知消息;
处理模块,用于接收到压栈指令push Reference,根据压栈指令push Reference中的第一对象引用计算第一校验值,对第一校验值和第一对象引用进行合并,将合并后的数据按序写入到栈中;接收到通知消息,按照先进后出的原则从栈中读取数据,获取读取的数据中的第二校验值和第二对象引用,根据获得的第二对象引用计算第三校验值,判断出计算得到的第三校验值和获得的第二校验值相同,返回获得的第二对象引用;其中,
所述处理模块具体用于:
接收到所述压栈指令push Reference,将所述第一对象引用进行按位取反得到所述第一校验值,对所述第一校验值和所述第一对象引用进行合并,将所述合并后的数据按序写入到栈中;接收到所述通知消息,按照先进后出的原则从所述栈中读取数据,获取所述读取的数据中的第二校验值和第二对象引用,将所述第二对象引用进行按位取反得到所述第三校验值,判断出计算得到的第三校验值和获得的第二校验值相同,返回获得的第二对象引用;
或者,
接收到所述压栈指令push Reference,将所述第一对象引用按位与预设值进行预设操作得到所述第一校验值,对所述第一校验值和所述第一对象引用进行合并,将所述合并后的数据按序写入到栈中;接收到所述通知消息,按照先进后出的原则从所述栈中读取数据,获取所述读取的数据中的第二校验值和第二对象引用,将所述第二对象引用按位与预设值进行预设操作得到所述第三校验值,判断出计算得到的第三校验值和获得的第二校验值相同,返回获得的第二对象引用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐微电子技术有限公司;大唐半导体设计有限公司,未经大唐微电子技术有限公司;大唐半导体设计有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610012520.3/1.html,转载请声明来源钻瓜专利网。





