【技术实现步骤摘要】
面向C程序缺陷检测的靶向式并行符号执行方法
本专利技术涉及信息
,尤其涉及一种面向C程序缺陷检测的靶向式并行符号执行方法。
技术介绍
符号执行是一种精确度较高的程序分析技术。该技术使用符号化输入代替实际输入来模拟执行目标程序,使用符号表达式刻画执行路径上程序指令的语义。在遇到条件语句时,分支条件被加入到当前路径的路径条件中,通过调用SMT求解器对路径条件的可满足性进行求解来判断路径是否实际可行,通过对路径条件约束子集变异后得到的新约束集合,通过使用SMT求解器对新约束集合求解,循环以上过程以穷举分析目标程序的路径空间。计算资源开销过大和路径空间爆炸问题导致符号执行技术难以高效分析大规模代码,是该技术目前存在的主要问题。
技术实现思路
针对现有技术的不足,本专利技术提供一种面向C程序缺陷检测的靶向式并行符号执行方法,有机结合静态分析“快”和符号执行“准”的优点,在利用静态分析的优势保证高效率的同时,利用符号执行的精度优势,实现对源代码缺陷分析目标的快速精准定位和验证。本专利技术解决其技术问题所采用的技术方案是:所述面向C程序缺陷检测的靶向式并行符号执行方法包括分布 ...
【技术保护点】
1.一种面向C程序缺陷检测的靶向式并行符号执行方法,其特征在于:包括分布式计算系统,所述分布式计算系统包括一个主控节点和多个计算节点,所述主控节点负责任务的预处理和任务的分派,所述计算节点负责任务处理;所述主控节点任务预处理和任务分派包括以下步骤:步骤S1、源代码编译到中间代码:主控节点利用C代码编译前端将源代码编译到中间代码;步骤S2、静态分析出疑似漏洞点:主控节点对源代码做静态分析,给出疑似漏洞点p1,p2,…pn,各漏洞点分别对应中间代码中的一条指令;步骤S3、建立程序依赖图:主控节点分析中间代码,依次建立程序依赖图G<Entry>,其中Entry为程序依 ...
【技术特征摘要】
1.一种面向C程序缺陷检测的靶向式并行符号执行方法,其特征在于:包括分布式计算系统,所述分布式计算系统包括一个主控节点和多个计算节点,所述主控节点负责任务的预处理和任务的分派,所述计算节点负责任务处理;所述主控节点任务预处理和任务分派包括以下步骤:步骤S1、源代码编译到中间代码:主控节点利用C代码编译前端将源代码编译到中间代码;步骤S2、静态分析出疑似漏洞点:主控节点对源代码做静态分析,给出疑似漏洞点p1,p2,…pn,各漏洞点分别对应中间代码中的一条指令;步骤S3、建立程序依赖图:主控节点分析中间代码,依次建立程序依赖图G<Entry>,其中Entry为程序依赖图G的入口;步骤S4、图算法遍历程序依赖图G:主控节点使用图算法遍历程序依赖图G,分别针对p1,p2,…pn,得到子图G1、G2、…Gn,对于Gi,i∈[1,2,3…,n],入口为Entry,出口为pi;步骤S5、将子图置入队列:主控节点将子图G1、G2、…Gn置入队列ListTask;步骤S6、记录计算节点的状态:主控节点使用状态向量StateVecter记录各计算节点的状态,状态向量StateVecter的每个单元为一个元组NS<ID,IP,PORT,IdleCoreNumber,WORKSTATE>;步骤S7、初始化计算节点:分布式计算系统启动时,主控节点进入初始状态,完成步骤S1~S5后,根据预先设定的计算节点相关信息,分别为每个计算节点i设置对应的元组NSi进行初始化,并进入等待状态,接收各计算节点的注册请求;步骤S8、中间代码的分配:各计算节点向主控节点注册,提交其ID、IP地址、端口PORT、空闲CPU核心数IdleCoreNumber,主控节点填充状态向量StateVecter中相应信息,并将编译后的中间代码分发至各计算节点;步骤S9、遍历队列ListTask:主控节点遍历队列ListTask,取出第一个子图G0,遍历状态向量StateVecter各元素Statei(i∈[1,2,3…,n]),对于Statei,若其IdleCoreNumber>0,则将G0分配给Statei标识的计算节点;若ListTask为空,且状态向量StateVecter中各State的WORKSTATE均为IDLE,表示全部任务处理完毕,执行步骤S12;步骤S10、各计算节点开始计算任务;步骤S11、更新元组NS:计算节点i...
【专利技术属性】
技术研发人员:张俊贤,赵曦,
申请(专利权)人:湖南泛联新安信息科技有限公司,
类型:发明
国别省市:湖南,43
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。