一种二进制文件控制流的并行分析方法技术

技术编号:43381890 阅读:10 留言:0更新日期:2024-11-19 17:58
本发明专利技术公开了一种二进制文件控制流的并行分析方法,涉及软件开发领域,本方法通过多个工作进程并行地对每个待分析的基本块进行辐射状分析,找出基本块所有的跳跃目标,形成深度为一的子CFG图,最后将所有的子CFG图进行合并以还原完整的CFG图,还原整个二进制文件的完整控制流,进而快速完成二进制文件控制流的并行分析。本方法在分析过程中避免了大量的回溯,减少了重复的分析工作;使用工作队列和工作进程并行分析,充分利用了CPU的多核性能,极高的缩短了分析时间;且分析期间完全打散每条跳跃分支,通过结果队列进行保存,最后进行合并,避免使用栈空间保存大量的中间路径,节约了程序的内存栈。

【技术实现步骤摘要】

本专利技术涉及软件开发领域,具体涉及一种二进制文件控制流的并行分析方法


技术介绍

1、在软件开发领域,通常由开发人员通过编程语言编写代码实现软件的功能,开发完成后通过编译器将源代码编译成可执行的二进制文件部署在目标设备上运行。由于编译器优化、现场环境复杂多变等原因导致二进制文件的执行过程与源代码所期望的行为产生了不一致。因此,对二进制文件进行静态和动态分析是发现潜在漏洞和理解其运行逻辑的重要手段。

2、angr是一个知名的开源二进制分析框架,其通过模拟执行还原二进制文件的控制流时基于dfs(deep first search)算法,沿着控制流跳转路径尽可能深的分析执行分支,达到最深层的基本块后进行回溯,反复执行这个过程直到还原整个控制流,如图2所示,angr的实现流程具体为:

3、第一步,开始分析后,angr找到二进制文件的执行入口,分析入口处的二进制代码,并创建入口基本块,将其加入cfg(control flow graph)图,设置为当前基本块。

4、第二步,angr对当前块进行标记,分析当前块的二进制代码,发掘当本文档来自技高网...

【技术保护点】

1.一种二进制文件控制流的并行分析方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种二进制文件控制流的并行分析方法,其特征在于,在步骤S2中,工作进程数为CPU核心数的两倍。

3.根据权利要求1所述的一种二进制文件控制流的并行分析方法,其特征在于,当工作队列中的待分析的基本块不足以分配给所有等待的工作进程时,使未分配到待分析的基本块的工作进程继续等待。

4.根据权利要求1所述的一种二进制文件控制流的并行分析方法,其特征在于,根据工作进程的分析结果创建相应基本块及与其直接跳跃目标形成的深度为一的CFG图的具体方法为:>

5.根据权利...

【技术特征摘要】

1.一种二进制文件控制流的并行分析方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的一种二进制文件控制流的并行分析方法,其特征在于,在步骤s2中,工作进程数为cpu核心数的两倍。

3.根据权利要求1所述的一种二进制文件控制流的并行分析方法,其特征在于,当工作队列中的待分析的基本块不足以分配给所有等待的工作进程时,使未分配到待分析的基本块的工作进程继续等待。

4.根据权利要求1所述的...

【专利技术属性】
技术研发人员:王伟罗柳庭张昆
申请(专利权)人:成都菁蓉联创科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1