发明授权
- 专利标题: 一种代码静态检测方法
-
申请号: CN201510390576.8申请日: 2015-07-03
-
公开(公告)号: CN104965788B公开(公告)日: 2017-07-28
- 发明人: 屈鸿 , 王晓斌 , 李奇军 , 符明晟 , 邵领 , 王留帅 , 袁健
- 申请人: 电子科技大学
- 申请人地址: 四川省成都市高新西区西源大道2006号
- 专利权人: 电子科技大学
- 当前专利权人: 电子科技大学
- 当前专利权人地址: 四川省成都市高新西区西源大道2006号
- 代理机构: 成都弘毅天承知识产权代理有限公司
- 代理商 杨保刚; 徐金琼
- 主分类号: G06F11/36
- IPC分类号: G06F11/36
摘要:
本发明公开了一种代码静态检测方法,具体涉及一种基于LLVM IR的符号执行算法——利用给予程序变量符号初值技术领域,解决现在技术中的静态检测方法支持语言单一、不能较好的处理指针和别名问题,探测潜在的程序漏洞等问题。本发明的步骤:(1)获取源代码,并将源代码进行预处理转换为LLVM汇编程序;(2)将转换得到的LLVM汇编程序,运用符号执行算法模拟解释执行LLVM汇编程序,并记录各个变量在不同路径上的符号值和各条路径的约束条件;(3)根据记录各个变量在不同路径上的符号值和各条路径的约束条件,调用SMT求解器Z3检查变量的符号值是否满足路径约束和漏洞约束,判断程序是否存在潜在漏洞。本发明应用于源代码中的数组越界,除零错误和空指针引用。
公开/授权文献
- CN104965788A 一种代码静态检测方法 公开/授权日:2015-10-07