[发明专利]一种java程序动态分析方法、设备和存储介质有效
申请号: | 201810817527.1 | 申请日: | 2018-07-24 |
公开(公告)号: | CN109308256B | 公开(公告)日: | 2021-08-27 |
发明(设计)人: | 刘正;赵继光 | 申请(专利权)人: | 中国建设银行股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫 |
地址: | 100032 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 程序 动态 分析 方法 设备 存储 介质 | ||
1.一种java程序动态分析方法,其特征在于,包括:
修改java开发包中字符串string类的预定方法;
为待分析程序的传入参数赋值,所述赋值包括预埋字符串;
动态执行所述待分析程序,确定被比较的两个字符串是否包含预埋字符串,
响应于所述两个字符串中的一个字符串为预埋字符串,将所述两个字符串中的另一个字符串作为所述待分析程序的关键参数值。
2.根据权利要求1所述的方法,其特征在于,所述所述待分析程序包括待测试的java方法,所述预定方法包括equals方法。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述string类中设置静态的标签flag并且增加所述标签的set方法,其中,所述标签用于控制所述字符串string类中自定义代码的影响范围;
在所述string类中增加静态队列和所述静态队列的get方法,修改所述字符串string类的equals方法,以便运行所述equals方法时,被比较的两个字符串记录到所述静态队列,
将修改后的string类打包成jar包并加入到待分析程序的java运行环境,并将优先级设置为高优先级并且路径与原始的string类一致以覆盖原始的字符串string类的代码。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
获取所述标签的set方法将所述标签设置为真true以在执行所述string类的方法时执行所述string类中的自定义代码,
生成预定字符串作为测试check函数的所述预埋字符串,
通过所述check函数调用所述string类的equals方法并将被比较的字符串记录到所述静态队列,
调用所述静态队列的get方法,读取所述静态队列中被比较的字符串,所述被比较的字符串包括所述预埋字符串和第一参数构成的第一组字符串,所述预埋字符串和第二参数构成的第二组字符串。
5.根据权利要求4所述的方法,其特征在于,所述确定被比较的两个字符串是否包含预埋字符串包括:
确定从所述静态队列读取的第一组字符串中是否包含预埋字符串;以及
确定从所述静态队列读取的第二组字符串中是否包含预埋字符串。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述待分析程序运行到重定义方法时,通过Spring aop将所述重定义方法的属性信息保存到预定的类对象中,通过所述预定的类对象获取所述重定义方法的参数值和返回值类型,同时调用所述预定的类对象的proceed方法继续执行原方法体。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过递归调用方式对所述重定义方法的返回值进行属性值填充,同时设置递归调用的阈值以防止无限递归循环。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述待分析程序的报错信息,在所述报错信息中提取类名称,使用javaassist的classpool类的makeclass方法处理所述类名称得到CtClass对象,调用CtClass对象的toClass方法将所创建的类加入运行时环境。
9.根据权利要求2所述的方法,其特征在于,所述方法还包括:
获取待分析方法的输入参数的类型,生成符合所述输入参数的类型的参数值列表,以便将所述参数值列表作为参数传入所述待分析方法。
10.根据权利要求9所述的方法,其特征在于,所述输入参数包括实体类。
11.一种计算机设备,包括存储器和处理器,其中,
所述存储器,用于存储计算机指令;
所述处理器,用于执行所述计算机指令以执行权利要求1至10所述的计算机指令。
12.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被存储器执行时实现权利要求1至10所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国建设银行股份有限公司,未经中国建设银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810817527.1/1.html,转载请声明来源钻瓜专利网。