【技术实现步骤摘要】
基于数据库进行跨文件协同程序分析的处理方法及系统
本技术涉及一种基于抽象语法树(AST)遍历的静态代码分析技术,属于编程语言领域,尤其涉及一种基于数据库进行跨文件协同分析处理方法及系统。
技术介绍
在基于抽象语法树遍历的静态代码分析中,静态代码分析工具框架针对每个源代码文件生成的抽象语法树(AST)进行遍历,开发者可以根据规则的需求,创建对应的节点匹配器并进行注册,静态代码分析工具在遍历语法树时,发现符合节点匹配器的节点,则会将该节点保存在内存中,并通过回调函数通知客户端。开发者在完成了节点匹配器的注册后,在回调函数中实现报警机制,将对应节点的代码位置,报警内容输出到命令行。基于以上的框架,静态代码分析工具在处理项目中的多个源代码文件时,是单个的遍历代码文件的语法树,因此,这种情况下仅能处理单个文件就能分析的规则,对于某些需要在整个系统层面分析的系统规则,静态代码分析工具的框架就无法处理了。专利内容本专利目的是针对上述现有技术的不足,提供一种基于数据库进行跨文件协同分析处理方法及系统,编程简单、充分利用数据库
【技术保护点】
1.一种基于数据库进行跨文件协同程序分析的处理方法,其特征在于,包括:/n(11)将待测文件分解成若干单个分解单元,分别将单个分解单元对应的源代码文件在基于抽象语法树的静态代码分析工具的客户端中运行;/n(12)、将数据库集成到基于抽象语法树的静态代码分析工具中,通过收集待关注的抽象语法树的节点信息的任务,存储上述单个分解单元在基于抽象语法树的静态代码分析工具中的运行数据信息,所述运行数据信息包括在上述规则中遍历抽象语法树(AST)时需要关注的节点信息;/n(13)基于步骤(12)的数据库,创建搜索规则:将收集的待测文件的分解文件代码在基于抽象语法树的静态代码分析工具中查找 ...
【技术特征摘要】
1.一种基于数据库进行跨文件协同程序分析的处理方法,其特征在于,包括:
(11)将待测文件分解成若干单个分解单元,分别将单个分解单元对应的源代码文件在基于抽象语法树的静态代码分析工具的客户端中运行;
(12)、将数据库集成到基于抽象语法树的静态代码分析工具中,通过收集待关注的抽象语法树的节点信息的任务,存储上述单个分解单元在基于抽象语法树的静态代码分析工具中的运行数据信息,所述运行数据信息包括在上述规则中遍历抽象语法树(AST)时需要关注的节点信息;
(13)基于步骤(12)的数据库,创建搜索规则:将收集的待测文件的分解文件代码在基于抽象语法树的静态代码分析工具中查找数据信息,根据关注节点设置,自动学习归集,实现待测文件的系统规则检测;
(14)待测文件整体基于整合后的系统规则在基于抽象语法树的静态代码分析工具中运行,进行代码检测分析;
(15)待测文件整体在基于抽象语法树的静态代码分析工具中运行,按照系统规则,将违反系统规则的代码,进行告警。
2.基于权利要求1所述的一种基于数据库进行跨文件协同分析处理方法,其特征在于:所述系统规则包括变量唯一性,所述变量唯一性的协同处理步骤为:
(21)选择待分析程序;
(22)运行基于抽象语法树的静态代码分析工具;
(23)待分析程序在基于抽象语法树的静态代码分析工具中运行,分析待分析程序的源代码文件;
(24)将待分析程序的源代码文件中的所关注的数据信息保存到数据库中;
(25)判断待分析程序的源代码文件是否分析完成,分析未完成,返回步骤(23);分析完成,进入步骤(26);
(26)检索更新后的数据库,从所保存的数据信息中,检索出重名的变量;
(27)将重名的变量以告警输出。
3.基于权利要求1所述的一种基于数据库进行跨文件协同分析处理方法,其特征在于:将数据库集成到基于抽象语法树的静态代码分析工具中,数据库与静态代码分析工具的交互设有加密处理,具体包括:通过数据库编号和经过签名的授权信息唯一确认;登陆时机器码确认;核查授权起始日期和授权终止日期,判断授权确认后的是否在授权期限内。
4.基于权利要求1所述的一种基于数据库进行跨文件协...
【专利技术属性】
技术研发人员:李兆鹏,顾建平,何海洋,丁飞,
申请(专利权)人:安徽中科国创高可信软件有限公司,
类型:发明
国别省市:安徽;34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。