版权所有:内蒙古大学图书馆 技术提供:维普资讯• 智图
内蒙古自治区呼和浩特市赛罕区大学西街235号 邮编: 010021
专利申请号:CN201510707442.4
公 开 号:CN105389195A
代 理 人:高燕燕;仇蕾安
代理机构:11120 北京理工大学专利中心
专利类型:发明申请
申 请 日:20160309
公 开 日:20151027
专利主分类号:G06F9/45(20060101)
关 键 词:静态分析 缺陷模式 预处理 源代码 替换 预处理模块 正则表达式 匹配模块 语法分析 中间代码 链表 准确度 代码替换 人工检查 漏报率 模块对 整形 一种 进行 溢出 匹配 生成 对比 找到 公开 处理
摘 要:本发明公开了一种基于代码替换和正则表达式的静态分析工具改进方法,静态分析工具采用预处理模块对源代码进行预处理,生成中间代码;采用语法分析模块对中间代码进行语法分析最终获得双向token链表;采用缺陷模式匹配模块用于将双向token链表与缺陷模式进行对比,找到其中匹配的部分,处理获得静态分析结果;在预处理模块中对源代码进行预处理时,将i++替换为(i=i+1)-1,将++i替换为i=i+1,将i--换为(i=i-1)+1,将--i替换为i=i-1;在缺陷模式匹配模块中增加如下正则表达式:if(%var%=%num%);if(%any%&%any%);scanf(%str%,%var%);其中%var%、%num%、%any%、%any%、%str%以及%var%均为变量。本发明可以提高整形溢出问题的准确度,降低漏报率,少人工检查的成本。