[发明专利]一种实现压栈和弹栈的方法和装置有效
| 申请号: | 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来对对象引用对应的对象的内容进行操作,提高了安全性。
技术领域
本发明涉及堆栈技术,尤指一种实现压栈和弹栈的方法和装置。
背景技术
堆栈是一种将数据按序排列的数据结构,主要用于存放函数的参数值、或局部变量的值等。数据通过压栈操作存储数据,通过弹栈操作读取数据,保证数据的先进后出原则。
现有的实现压栈和弹栈的方法大致包括:接收到压栈指令push Reference 时,将压栈指令push Reference中的对象引用按序写入到栈中,接收到弹栈指令pop Reference时,按照先进后出的原则从栈中读取对象引用。
接收到压栈指令push short(或压栈指令push int)时,将压栈指令push short中的数据按序写入到栈中,接收到弹栈指令pop short(或弹栈指令pop int)时,按照先进后出的原则从栈中读取数据。
push short和pop short一般成对使用,push Reference和pop Reference 一般成对使用,在JAVA虚拟机中存在_bspush、_sspush等命令可以通过简单的处理直接调用push short进行压栈,而push Reference和pop Reference 为内部指令,一般在系统进行对象传递或对象创建等过程中由系统内部使用。
现有的实现压栈和弹栈的方法中,由于push short和push Reference在进行压栈和弹栈的过程相同,因此,攻击者往往使用push short代替push Reference来压入某一个对象引用,从而对对象引用对应的对象的内容进行操作,容易造成系统数据的泄露,安全性较低。
发明内容
为了解决上述问题,本发明提出了一种实现压栈和弹栈的方法和装置,能够提高安全性。
为了达到上述目的,本发明提出了一种实现压栈和弹栈的方法,包括:
接收到压栈指令push Reference时,根据压栈指令push Reference中的第一对象引用计算第一校验值,对第一校验值和第一对象引用进行合并,将合并后的数据按序写入到栈中;
接收到弹栈指令pop Reference时,按照先进后出的原则从栈中读取数据,获取读取的数据中的第二校验值和第二对象引用,根据获得的第二对象引用计算第三校验值,判断出计算得到的第三校验值和获得的第二校验值相同,返回获得的第二对象引用。
优选地,当判断出所述第三校验值和所述第二校验值不相同时,该方法还包括:抛出异常。
优选地,当接收到压栈指令push short或push int时,该方法还包括:
将接收到的压栈指令push short或push int中的数据按序写入到所述栈中。
优选地,所述根据压栈指令push Reference中的第一对象引用计算第一校验值包括:
将所述第一对象引用进行按位取反得到所述第一校验值;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大唐微电子技术有限公司;大唐半导体设计有限公司,未经大唐微电子技术有限公司;大唐半导体设计有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610012520.3/2.html,转载请声明来源钻瓜专利网。





