[发明专利]一种JAVA卡帧的边界检查方法在审
申请号: | 201611186553.6 | 申请日: | 2016-12-20 |
公开(公告)号: | CN106845225A | 公开(公告)日: | 2017-06-13 |
发明(设计)人: | 曾林;仲倩黎 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F9/455 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 102209 北京市昌平区北七家镇未*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 边界 检查 方法 | ||
1.一种JAVA卡帧的边界检查方法,其特征是:所述方法包括:
步骤S1:Java卡虚拟机调用Java方法时,建立一个方法帧,并压入栈,记录方法帧的起始地址,同时记录两个范围:合法操作数范围和合法局部变量索引范围;
步骤S2:Java卡虚拟机执行Java方法的字节码时如需操作栈数据,获取需要操作的栈数据类型;
步骤S3:根据所述数据类型;如果是局部变量,则执行步骤A1;如果是操作数,则执行步骤B1;
步骤A1:判断局部变量索引是否在合法局部变量索引范围内,是则执行步骤S4,否则抛出异常;
步骤B1:判断操作数地址是否在合法操作数范围内,是则执行步骤S4,否则抛出异常;
步骤S4:Java卡虚拟机执行当前字节码。
2.根据权利要求1所述的方法,其特征是:所述的两个范围是通过所述Java卡虚拟机解析所述应用的Java方法的method_header_info数据结构中的max_stack,max_locals,nargs信息结合所述方法帧的起始地址信息,使用0作为合法局部变量索引范围的下边界,使用(max_locals+nargs-1)作为合法局部变量索引范围的上边界;使用方法帧起始地址加上((max_locals+nargs)*2)作为合法操作数范围的下边界;使用合法操作数范围的下边界加上(max_stack*2)作为合法操作数范围的上边界。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611186553.6/1.html,转载请声明来源钻瓜专利网。