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