一种基于Actor模型的并行动态符号执行方法和系统与流程

文档序号:11154872阅读:来源:国知局

技术特征:

1.一种基于Actor模型的并行动态符号执行方法,其特征在于,包括如下步骤:

步骤A:将动态符号执行工具的执行方式设置为满足并行框架执行的需求;

步骤B:在Actor模型的并行框架中配置用于管理并行框架中各工作节点通讯的通讯节点,并将配置后的并行框架合并到修改后的动态符号执行工具中;

步骤C:Actor模型的多个工作节点通过通讯节点从预先构造的待求解路径栈中取出任务,并根据任务探索器获取所述任务的任务路径约束值;

步骤D:利用约束求解器对所述任务路径约束值进行求解,得到求解值Valuation;

步骤E:将求解值Valuation采用递归方式代入所述待求解路径栈中的路径,生成待探索路径,将待探索路径存入预先构造的待探索路径栈中。

2.根据权利要求1所述一种基于Actor模型的并行动态符号执行方法,其特征在于,还包括步骤F:根据待探索路径生成待测程序的测试用例,根据测试用例检测待测程序中的漏洞。

3.根据权利要求1所述一种基于Actor模型的并行动态符号执行方法,其特征在于,所述步骤A包括:所述动态符号执行工具为Jdar工具,将动态符号执行工具Jdar的模式设置为每次处理完一条路径即结束的模式来满足并行框架执行的需求。

4.根据权利要求1所述一种基于Actor模型的并行动态符号执行方法,其特征在于,所述步骤B包括:在Actor模型的并行框架中配置通讯节点Master,所述通讯节点Master用于管理并行框架中各工作节点通讯和信息交互,并将已配置通讯节点的并行框架合并到修改后的动态符号执行工具的框架中,得到并行动态执行工具。

5.根据权利要求1所述一种基于Actor模型的并行动态符号执行方法,其特征在于,所述步骤C包括:启动并行动态执行工具中Actor模型的多个工作节点,所述多个工作节点通过通讯节点从预先构造的待求解路径栈中取出任务并将任务传递给任务探索器,所述任务探索器包括动态探索器和搜索器,动态探索器将任务中的并行任务重新分配给多个工作节点,搜索器在任务分配后的多个工作节点中获取任务路径约束值。

6.根据权利要求1所述一种基于Actor模型的并行动态符号执行方法,其特征在于,所述步骤D包括:

步骤D1:将任务路径约束值保存在预先构造的约束求解值栈中;

步骤D2:将待求解路径栈中的任务分割为多个任务片段,将任务片段分别与约束求解值栈中的任务路径约束值进行比对,如果相同,则执行步骤D3,否则执行步骤D4;

步骤D3:从与任务路径约束值相同的任务片段中提取参数值A;

步骤D4:利用约束求解器Z3对该任务片段进行求解,将求解数值记为B;

步骤D5:将各参数值A和各求解数值B进行集合,得到数组[A,B],将数组[A,B]作为求解值Valuation。

7.根据权利要求1-6任一项所述一种基于Actor模型的并行动态符号执行方法,其特征在于,所述步骤E包括:

步骤E1:将求解值Valuation采用递归方式依次代入待求解路径栈的每条路径,如果可满足当前路径,则生成待探索路径,再执行下一条路径,否则利用约束求解器Z3对求解值Valuation进行约束求解;

步骤E2:将待探索路径存入预先构造的待探索路径栈中。

8.一种基于Actor模型的并行动态符号执行系统,其特征在于,包括:

设置模块,用于将动态符号执行工具的执行方式设置为满足并行框架执行的需求;

合并模块,用于在Actor模型的并行框架中配置用于管理并行框架中各工作节点通讯的通讯节点,并将配置后的并行框架合并到修改后的动态符号执行工具中;

任务求解模块,用于Actor模型的多个工作节点通过通讯节点从预先构造的待求解路径栈中取出任务,并根据任务探索器获取所述任务的任务路径约束值;

求解模块,用于利用约束求解器对所述任务路径约束值进行求解,得到求解值Valuation;

任务探索模块,用于将求解值Valuation采用递归方式来代入所述待求解路径栈中的路径,生成待探索路径,将待探索路径存入预先构造的待探索路径栈中。

9.根据权利要求8所述一种基于Actor模型的并行动态符号执行系统,其特征在于,还包括检测模块,根据待探索路径生成待测程序的测试用例,根据测试用例检测待测程序中的漏洞。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1