基于路径包含处理方法的源代码静态分析方法及其装置制造方法及图纸

技术编号:6953022 阅读:351 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种基于路径包含处理方法的源代码静态分析方法及其装置;所述处理方法包括:当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;当包含路径中的变量具有常量值时找到该包含路径对应的源代码文件;采用该源代码文件替代该包含路径。本发明专利技术使源代码静态分析器能处理包含路径中存在变量的情况。

【技术实现步骤摘要】

本专利技术涉及计算机领域,尤其涉及一种基于路径包含处理方法的源代码静态分析方法及其装置
技术介绍
随着软件工程的规模越来越大,源码文件越来越多,源代码文件间的调用关系也是日趋复杂。单纯依靠编译器不足以发现代码中存在的所有问题,越来越多的开发者使用源代码静态分析器工具作为编译器的有效补充来发现和解决程序中可能存在的问题,如语义错误、安全缺陷等。图1显示了源代码静态分析器的常规框图。由源代码开发人员或测试人员将源代码输入源代码静态分析器中,首先由源代码解析模块进行处理,它将源代码转换为精简的中间代码交给缺陷分析模块,缺陷分析模块对中间代码进行分析并将分析数据一如语义分析、数据流分析等提交给结果输出模块,结果输出模块使用分析数据并结合缺陷规则库中定义的缺陷生成结果文件。目前,针对程序源代码进行静态分析的技术和工具很多,但绝大多数都集中于传统开发语言,如C、c++、Java等。这种语言的特点是静态性、编译性较好,而当前比较流行的脚本语言,如PHP (Hypertext Pr印rocessor,超级文本预处理语言),通常具有动态性和解释性特点。下文所示为Java代码中静态路径包含的例子 i本文档来自技高网...

【技术保护点】
1.一种路径包含的处理方法,包括:当包含路径为非常量时,判断该包含路径中的变量是否具有常量值;当包含路径中的变量具有常量值时找到该包含路径对应的源代码文件;采用该源代码文件替代该包含路径。

【技术特征摘要】
1.一种路径包含的处理方法,包括当包含路径为非常量时,判断该包含路径中的变量是否具有常量值; 当包含路径中的变量具有常量值时找到该包含路径对应的源代码文件; 采用该源代码文件替代该包含路径。2.如权利要求1所述的方法,其特征在于,所述判断包含路径中的变量是否具有常量值的步骤包括对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点; 如果求解结果为确定的值,则判断该包含路径中的变量具有常量值; 如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。3.一种路径包含的处理装置,包括判断模块,用于当包含路径为非常量时,判断该包含路径中的变量是否具有常量值; 查找模块,用于当所述判断模块判断包含路径中的变量具有常量值时,找到该包含路径对应的源代码文件;处理模块,用于采用该源代码文件替代该包含路径。4.如权利要求3所述的装置,其特征在于,所述判断模块判断包含路径中的变量是否具有常量值是指所述判断模块对该包含路径建立常量传播方程,通过迭代计算反复求解,直到到达不动点;如果求解结果为确定的值,则判断该包含路径中的变量具有常量值;如果求解结果为不确定的值,则判断该包含路径中的变量不具有常量值。5.一种基于路径包含处理方法的源代码静态分析器,包括 源码解析模块,用于根据输入的源代码文件产生中间代码; 缺陷分析模块,用于根据所接收的中间代码得到分析数据;结果输出模块,用于根据所述分析数据及预定的缺陷规则生成缺陷分析结果; 其特征在于,还包括常量分析模块;所述源码解析模块还用于在所述中间代码中查找包含路径,如果不存在包含路径则将中间代码发送给所述缺陷分析模块;当查找到为非常量的包含路径时将该包含路径发送给所述常量分析模块,接收到常量分析模块返回的包含路径对应的源代码文件后,采用该源代码文件替代对应的包含路径;替代后继续在所述中间代码中查找包含路径;所述常量分析模块用于判断所接收到的包含路径中的变量是否具有常量值,如果具有则找到该包含路径对应的源代码文件,并将其返回给所述源码解析模块。6.如权利要求5所述的源代码静态分析器,其特征在于,所述源码解析模块包括 控制单元、发送单元;转换单元,用...

【专利技术属性】
技术研发人员:吴世忠郭涛时志伟王眉林章磊洪东陈晓军韩冰
申请(专利权)人:中国信息安全测评中心北京启明星辰信息安全技术有限公司
类型:发明
国别省市:11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1