System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 针对嵌入式固件的模糊测试方法、装置及存储介质制造方法及图纸_技高网

针对嵌入式固件的模糊测试方法、装置及存储介质制造方法及图纸

技术编号:40661531 阅读:5 留言:0更新日期:2024-03-18 18:54
本申请实施例提供一种针对嵌入式固件的模糊测试方法、装置及存储介质,所述方法包括:获取嵌入式固件中全局变量的读取位置,所述全局变量为在中断处理函数与主逻辑之间传递数据的全局变量;获取所述中断处理函数中与数据接收相关的分支;在所述全局变量的读取位置之前插入所述分支,获取修改后的嵌入式固件;基于所述修改后的嵌入式固件,进行模糊测试。本申请实施例提供的针对嵌入式固件的模糊测试方法、装置及存储介质,通过将中断处理函数中与数据接收相关的分支插入到全局变量的读取位置之前,重新编译固件,对固件进行模糊测试,能够让固件在模糊测试过程中无需浪费CPU时间等待数据,能够提高固件模糊测试效率。

【技术实现步骤摘要】

本申请涉及软件安全,尤其涉及一种针对嵌入式固件的模糊测试方法、装置及存储介质


技术介绍

1、嵌入式设备广泛应用于消费电子产品以及能源和交通管理系统等关键基础设施。由于使用广泛,这些设备成为恶意攻击的热门目标。为了检测嵌入式设备中的安全漏洞,研究人员通常采用模糊测试技术。这种技术的思想是随机生成大量的测试用例,并将其输入设备以触发异常行为。

2、然而,嵌入式设备的固件与桌面应用程序不同,这为针对后者设计的模糊测试技术带来了独特的挑战。一个长期被忽视的差异是输入输出(i/o)方法。桌面应用程序主要从本地文件或网络套接字获取输入并保存输出,而固件通常通过中断或轮询从io处理与本地外设相关的输入和输出。

3、中断是为嵌入式设备中的异步数据传输设计的,中央处理器(centralprocessing unit,cpu)在处理任何输入输出之前等待外设的通知。然而,这种机制极大降低了模糊测试效率。


技术实现思路

1、本申请实施例提供一种针对嵌入式固件的模糊测试方法、装置及存储介质,用以解决相关技术中模糊测试效率低的技术问题。

2、第一方面,本申请实施例提供一种针对嵌入式固件的模糊测试方法,包括:

3、获取嵌入式固件中全局变量的读取位置,所述全局变量为在中断处理函数与主逻辑之间传递数据的全局变量;

4、获取所述中断处理函数中与数据接收相关的分支;

5、在所述全局变量的读取位置之前插入所述分支,获取修改后的嵌入式固件;

<p>6、基于所述修改后的嵌入式固件,进行模糊测试。

7、在一些实施例中,所述获取嵌入式固件中全局变量的读取位置,包括:

8、确定所述嵌入式固件中的中断处理函数;

9、获取所述中断处理函数使用的全局变量;

10、跟踪所述全局变量,获取所述嵌入式固件中全局变量的读取位置。

11、在一些实施例中,在所述获取所述中断处理函数使用的全局变量之前,还包括:

12、确定所述全局变量的变量类型。

13、在一些实施例中,在所述变量类型为基础类型的情况下,所述获取所述中断处理函数使用的全局变量,包括:

14、获取被写入的全局变量。

15、在一些实施例中,在所述变量类型为复合类型的情况下,所述获取所述中断处理函数使用的全局变量,包括:

16、基于值流分析遍历程序赋值图,获取全局变量。

17、在一些实施例中,所述获取所述中断处理函数中与数据接收相关的分支,包括:

18、对所述中断处理函数进行切片,获取所述中断处理函数中与数据接收相关的分支。

19、在一些实施例中,所述方法还包括:

20、在插入后的分支之前插入触发语句,所述触发语句用于控制所述中断处理函数被执行的概率。

21、第二方面,本申请实施例还提供一种针对嵌入式固件的模糊测试装置,包括:

22、第一获取模块,用于获取嵌入式固件中全局变量的读取位置,所述全局变量为在中断处理函数与主逻辑之间传递数据的全局变量;

23、第二获取模块,用于获取所述中断处理函数中与数据接收相关的分支;

24、第三获取模块,用于在所述全局变量的读取位置之前插入所述分支,获取修改后的嵌入式固件;

25、第一处理模块,用于基于所述修改后的嵌入式固件,进行模糊测试。

26、在一些实施例中,第一获取模块,包括:

27、第一确定子模块,用于确定所述嵌入式固件中的中断处理函数;

28、第一获取子模块,用于获取所述中断处理函数使用的全局变量;

29、第二获取子模块,用于跟踪所述全局变量,获取所述嵌入式固件中全局变量的读取位置。

30、在一些实施例中,第一获取模块还包括:

31、第二确定子模块,用于确定所述全局变量的变量类型。

32、在一些实施例中,在所述变量类型为基础类型的情况下,所述第一获取子模块,包括:

33、第一获取单元,用于获取被写入的全局变量。

34、在一些实施例中,在所述变量类型为复合类型的情况下,所述第一获取子模块,包括:

35、第二获取单元,用于基于值流分析遍历程序赋值图,获取全局变量。

36、在一些实施例中,所述第二获取模块,包括:

37、第三获取子模块,用于对所述中断处理函数进行切片,获取所述中断处理函数中与数据接收相关的分支。

38、在一些实施例中,所述针对嵌入式固件的模糊测试装置还包括:

39、第二处理模块,用于在插入后的分支之前插入触发语句,所述触发语句用于控制所述中断处理函数被执行的概率。

40、第三方面,本申请实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述针对嵌入式固件的模糊测试方法。

41、第四方面,本申请实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述针对嵌入式固件的模糊测试方法。

42、第五方面,本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述针对嵌入式固件的模糊测试方法。

43、本申请实施例提供的针对嵌入式固件的模糊测试方法、装置及存储介质,通过将中断处理函数中与数据接收相关的分支插入到全局变量的读取位置之前,重新编译固件,对固件进行模糊测试,能够让固件在模糊测试过程中无需浪费cpu时间等待数据,能够提高固件模糊测试效率。

本文档来自技高网
...

【技术保护点】

1.一种针对嵌入式固件的模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的针对嵌入式固件的模糊测试方法,其特征在于,所述获取嵌入式固件中全局变量的读取位置,包括:

3.根据权利要求2所述的针对嵌入式固件的模糊测试方法,其特征在于,在所述获取所述中断处理函数使用的全局变量之前,还包括:

4.根据权利要求3所述的针对嵌入式固件的模糊测试方法,其特征在于,在所述变量类型为基础类型的情况下,所述获取所述中断处理函数使用的全局变量,包括:

5.根据权利要求3所述的针对嵌入式固件的模糊测试方法,其特征在于,在所述变量类型为复合类型的情况下,所述获取所述中断处理函数使用的全局变量,包括:

6.根据权利要求1所述的针对嵌入式固件的模糊测试方法,其特征在于,所述获取所述中断处理函数中与数据接收相关的分支,包括:

7.根据权利要求1所述的针对嵌入式固件的模糊测试方法,其特征在于,所述方法还包括:

8.一种针对嵌入式固件的模糊测试装置,其特征在于,包括:

9.一种电子设备,包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述的针对嵌入式固件的模糊测试方法。

10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的针对嵌入式固件的模糊测试方法。

...

【技术特征摘要】

1.一种针对嵌入式固件的模糊测试方法,其特征在于,包括:

2.根据权利要求1所述的针对嵌入式固件的模糊测试方法,其特征在于,所述获取嵌入式固件中全局变量的读取位置,包括:

3.根据权利要求2所述的针对嵌入式固件的模糊测试方法,其特征在于,在所述获取所述中断处理函数使用的全局变量之前,还包括:

4.根据权利要求3所述的针对嵌入式固件的模糊测试方法,其特征在于,在所述变量类型为基础类型的情况下,所述获取所述中断处理函数使用的全局变量,包括:

5.根据权利要求3所述的针对嵌入式固件的模糊测试方法,其特征在于,在所述变量类型为复合类型的情况下,所述获取所述中断处理函数使用的全局变量,包括:

6.根...

【专利技术属性】
技术研发人员:孙利民辛明峰文辉邓立廷吕世超张卫东
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

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

1