[发明专利]一种探测JAVA 程序文件扰动的方法及装置有效
申请号: | 201210004813.9 | 申请日: | 2012-01-09 |
公开(公告)号: | CN103198011A | 公开(公告)日: | 2013-07-10 |
发明(设计)人: | 马治国;何思远 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 英属开曼群岛大开曼*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 探测 java 程序 文件 扰动 方法 装置 | ||
技术领域
本申请涉及计算机技术领域,尤其涉及一种探测JAVA程序文件扰动的方法及装置。
背景技术
程序员编写程序的过程中,每个程序都会有很多不同的版本,从而需要程序员很好的管理各版本的代码,在需要的时间可以取出需要的版本,并且每个版本都有一个完整的说明。SVN(Sub Version,代码版本管理软件)作为版本管理工具。
SVN(Subversion,版本控制系统)与CVS一样,是一个跨平台的软件,支持大多数常见的操作系统。作为一个开源的版本控制系统,Subversion管理着随时间改变的数据。这些数据放置在一个中央资料档案库(repository)中。这个档案库很像一个普通的文件服务器,不过它会记住每一次文件的变动。这样你就可以把档案恢复到旧的版本,或是浏览文件的变动历史。Subversion是一个通用的系统,可用来管理任何类型的文件,其中包括了程序源码。
现有技术中如果使用SVN代码版本管理软件对不同版本的JAVA程序文件进行检测,在JAVA代码生产过程中,只能通过文本对比方法检测文本扰动,探测到的变化是与JAVA类和API无关的,则通过文本对比方法检测文本扰动,不能探测到JAVA类和API的变化。而在实际的工程生产中,如果需要检测到JAVA类和API的变化,则需要依靠人工的干预来组织JAVA类和API发生的变化。一个普通的工程包含的JAVA类和API数量是惊人的,从而导致实现JAVA类和API检测的难度大,程序复杂。
发明内容
本申请实施例提供一种探测JAVA程序文件扰动的方法及装置,本申请实施例所提供的方法和装置解决了现有技术中不能检测到程序代码中类和API信息发生扰动的问题。
本申请实施例提供一种探测JAVA程序文件扰动的方法,该方法包括:
在第一程序文件运行过程中,根据运行过的每个类和每个类中包括的方法得到每个类的第一类标签以及每个类包括的方法的第一方法标签;
所述第一程序文件源代码发生变化生成第二程序文件后,扫描第二程序文件的java字节码文件确定所述第二程序文件中包括类及每个类所包括的方法,并根据每个类和每个方法的内容信息确定每个类的第二类标签以及每个类包括的每个方法的第二方法标签,将所述第二类标签和第二方法标签插装到所述java字节码文件;
将java字节码文件中的第二类标签和第二方法标签与所述第一类标签和第一方法标签进行比较,根据比较结果确定第二程序文件相对于第一程序文件发生了扰动的类和方法。
根据上述方法本申请实施例还提供一种探测JAVA程序文件扰动的装置,该装置包括:
动态标签获取模块,用于在第一程序文件运行过程中,根据运行过的每个类和每个类中包括的方法得到每个类的第一类标签以及每个类包括的方法的第一方法标签;
静态标签获取模块,用于所述程序文件源代码发生变化生成第二程序文件后,扫描第二程序文件的java字节码文件确定所述第二程序文件中包括类及每个类所包括的方法,并根据每个类和每个方法的内容信息确定每个类的第二类标签以及每个类包括的每个方法的第二方法标签,将所述第二类标签和第二方法标签插装到所述java字节码文件;
扰动确定模块,用于将java字节码文件中的第二类标签和第二方法标签与所述第一类标签和第一方法标签进行比较,根据比较结果确定第二程序文件相对于第一程序文件发生了扰动的类和方法。
上述技术方案中的一个或两个,至少具有如下技术效果:
本申请实施例所提供的方法和装置,采用JAVA字节码来探测JAVA类与API扰动,从而能够检测到java程序中出现扰动的类和API信息,有效降低了JAVA类和API检测的难度和复杂度。
附图说明
图1为本申请实施例一种探测JAVA程序文件扰动的方法的流程图;
图2为本申请实施例现有技术中em、ec文件结构;
图3为本申请实施例进行插装后的em、ec;
图4为本申请实施例插装方法标签后的em文件结构示意图;
图4A为本申请实施例插装方法标签后的cm文件结构示意图;
图5为本申请实施例在em文件中写入和读出methods stamp的方法流程图;
图6为本申请实施例在ec文件中写入和读出methods stamp的方法流程图;
图7为本申请实施例对比em和ec文件中methods stamp的方法流程图;
图8为本申请实施例一种探测JAVA程序文件扰动的装置的结构示意图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210004813.9/2.html,转载请声明来源钻瓜专利网。