This application provides a Java code detection method and device, the method comprises: receiving the detected source code; analysis of source code of function calls, all the sub structure of the code to get the source code; obtaining the source code as well as each sub structure code to call the jar package set; each jar judgment gets a collection of packets if there is a conflict jar package; each jar gets in the packet conflict set jar packet, output of the source code to detect the presence of inconsistent results function after confusion. Applying this application example, it is possible to realize the inconsistent function of the code in advance when the Java code is confused.
【技术实现步骤摘要】
一种Java代码检测方法及装置
本申请涉及软件开发
,尤其涉及一种Java代码检测方法及装置。
技术介绍
在软件开发过程中,对于编写好的Java代码通常可以使用代码混淆工具(如proguard工具)对代码进行混淆。混淆后的Java代码相对于混淆前的Java代码可以具有减少代码量、增加代码被破译的难度等优点。然而,使用代码混淆工具后,经常会发送混淆后的Java代码功能与混淆前的Java代码功能不一致,甚至混淆后代码功能不可用的情况。现有技术中,针对混淆后代码功能不一致的情况,通常会对混淆后的代码进行测试。测试过程中需要用到测试用例。由于导致混淆后代码功能不一致的原因多种多样,一般一个测试用例只能发现一种原因,所以需要编写尽可能多的测试用例。然而,编写测试用例需要很高的成本,基于成本考虑无法无限制地增加测试用例,因此基于测试用例的测试无法覆盖所有混淆后代码功能不一致的情况,导致存在不能及时发现混淆后java代码功能不一致的问题。
技术实现思路
本申请提供的一种Java代码检测方法及装置,以解决现有技术中存在不能及时发现混淆后Java代码功能不一致的问题。根据本申请实施例提供的一种Java代码检测方法,所述方法包括:接收待检测的源代码;分析源代码的函数调用关系,得出所述源代码的所有子结构代码;获取所述源代码以及每一个子结构代码调用的jar包集合;判断所获取的各个jar包集合是否存在冲突jar包;在所述获取的各个jar包集合存在冲突jar包的情况下,输出Java代码存在混淆后功能不一致的检测结果。可选的,所述获取所述源代码以及每一个子结构代码调用的jar包集合, ...
【技术保护点】
一种Java代码检测方法,其特征在于,所述方法包括:接收待检测的源代码;分析源代码的函数调用关系,得出所述源代码的所有子结构代码;获取所述源代码以及每一个子结构代码调用的jar包集合;判断所获取的各个jar包集合是否存在冲突jar包;在所述获取的各个jar包集合存在冲突jar包的情况下,输出所述源代码存在混淆后功能不一致的检测结果。
【技术特征摘要】
1.一种Java代码检测方法,其特征在于,所述方法包括:接收待检测的源代码;分析源代码的函数调用关系,得出所述源代码的所有子结构代码;获取所述源代码以及每一个子结构代码调用的jar包集合;判断所获取的各个jar包集合是否存在冲突jar包;在所述获取的各个jar包集合存在冲突jar包的情况下,输出所述源代码存在混淆后功能不一致的检测结果。2.根据权利要求1所述的方法,其特征在于,所述获取所述源代码以及每一个子结构代码调用的jar包集合,具体包括:读取所述源代码的配置文件中记录的所述源代码调用的jar包;读取所述子结构代码的配置文件中记录的所述子结构代码调用的jar包;将所述源代码调用的jar包以及所述每一个子结构代码调用的jar包,存入对应的jar包集合。3.根据权利要求2所述的方法,其特征在于,所述读取所述源代码的配置文件中记录的所述源代码调用的jar包,具体包括:读取所述源代码的配置文件中记录的所述源代码调用的jar包的名称以及版本号;所述读取所述子结构代码的配置文件中记录的所述子结构代码调用的jar包,具体包括:读取所述子结构代码的配置文件中记录的所述子结构代码调用的jar包的名称以及版本号。4.根据权利要求2或3所述的方法,其特征在于,所述配置文件包括pom文件或者build.gradle文件。5.根据权利要求1所述的方法,其特征在于,所述判断所获取的各个jar包集合是否存在冲突jar包,具体包括:获取所获取的各个jar包集合中jar包的名称以及版本号;判断是否存在相同名称、不同版本号的jar包;相应地,所述在所述获取的各个jar包集合存在冲突jar包的情况下,输出Java代码存在混淆后功能不一致的检测结果,具体包括:在存在相同名称、不同版本号的jar包的情况下,将其加入到冲突jar包集合;输出所述冲...
【专利技术属性】
技术研发人员:杨磊磊,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。