-
公开(公告)号:CN105389195B
公开(公告)日:2018-08-10
申请号:CN201510707442.4
申请日:2015-10-27
Applicant: 北京理工大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于代码替换和正则表达式的静态分析工具改进方法,静态分析工具采用预处理模块对源代码进行预处理,生成中间代码;采用语法分析模块对中间代码进行语法分析最终获得双向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%均为变量。本发明可以提高整形溢出问题的准确度,降低漏报率,少人工检查的成本。
-
公开(公告)号:CN105389195A
公开(公告)日:2016-03-09
申请号:CN201510707442.4
申请日:2015-10-27
Applicant: 北京理工大学
IPC: G06F9/45
Abstract: 本发明公开了一种基于代码替换和正则表达式的静态分析工具改进方法,静态分析工具采用预处理模块对源代码进行预处理,生成中间代码;采用语法分析模块对中间代码进行语法分析最终获得双向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%均为变量。本发明可以提高整形溢出问题的准确度,降低漏报率,少人工检查的成本。
-