System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请属于设备仿真,尤其涉及基于延迟绑定的设备固件仿真方法、装置、设备及介质。
技术介绍
1、目前大部分物联网安全研究人员在研究中都存在设备的缺乏、缺乏投资特定硬件的资金等情况。于是仿真开始受到越来越多的关注,仿真可以让软件重新焕发生机。仿真可以看到设备的运行信息,使得研究人员可以更快更准确的发现与定位异常。目前的仿真技术尚未成熟,qemu作为当下最普遍的仿真工具,在仿真过程中仍会遇到硬件缺失、网络配置、文件缺失等问题导致仿真失败。目前主流的自动化仿真框架都基于qemu进行开发如firmadyne、firmae。也有研究人员将符号执行与模糊测试技术应用到固件仿真中。
2、现有技术中对设备进行仿真分为三种仿真方式,分别为:使用真实设备仿真、加入符号执行仿真和使用模糊测试进行仿真。但是其均存在不同程度的缺点。采用真实设备参与仿真的仿真方案受到真实设备的限制,无法实现大规模自动化仿真并且对于无法获取真实设备的固件无法仿真。加入符号执行的仿真方案资源消耗大,由于使用了大量分析技术,会导致需要更多的cpu与内存,每次仿真都需要重复分析。还有使用模糊测试的仿真方案具有较低的保真度。目前的方案在一台新的机器进行仿真时需要部署较长时间,可移植性差。
技术实现思路
1、本申请实施例提供了基于延迟绑定的设备固件仿真方法、装置、设备及介质,以更加高效的完成设备固件的仿真。
2、本申请是通过如下技术方案实现的:
3、第一方面,本申请实施例提供了一种基于延迟绑定的设备固件
4、在对电子设备的设备固件程序进行仿真的过程中,若监测到指定的程序异常信息,基于指定的程序异常信息,确定指定的程序异常信息的输出位置,其中,指定的程序异常信息包括下述至少一项:硬件缺失信息、网络配置缺失信息以及文件缺失信息。
5、基于反汇编将指定的程序异常信息对应的机器码与程序字符串表进行对比,确定指定的程序异常信息的输出位置;其中,程序字符串表为固件程序运行的全部程序字符串的集合。
6、基于指定的程序异常信息的输出位置和设备固件的控制结构,确定使设备固件程序进入异常分支的判断函数;其中,异常分支为指定的程序异常信息的输出位置所在的分支。
7、基于判断函数寻找第一库函数;其中,第一库函数为影响判断函数的判断结果的库函数。
8、基于第一库函数通过符号执行生成目标返回值;其中,目标返回值使判断函数不进入异常分支。
9、基于目标返回值对第一库函数进行修改,得到函数替换文件;其中,函数替换文件为固件程序的可执行文件。
10、将函数替换文件设置为与第一库函数所在的可执行文件相比优先执行的文件,重新进行设备固件程序的仿真。
11、结合第一方面,在一些可能的实现方式中,基于指定的程序异常信息,确定指定的程序异常信息的输出位置,包括:
12、基于指定的程序异常信息,在设备固件程序中查找指定的程序异常信息对应的字符串。
13、将指定的程序异常信息对应的字符串与程序字符串表进行对比,确定指定的程序异常信息的输出位置;其中,程序字符串表为所述固件程序运行的全部程序字符串的集合。
14、结合第一方面,在一些可能的实现方式中,基于指定的程序异常信息,在设备固件程序中查找指定的程序异常信息对应的字符串,包括:
15、基于指定的程序异常信息,通过搜索指令在设备固件程序中查找指定的程序异常信息对应的字符串。
16、结合第一方面,在一些可能的实现方式中,基于目标返回值对第一库函数进行修改,得到函数替换文件,包括:
17、基于目标返回值对第一库函数进行修改,得到第二库函数。
18、基于第二库函数,生成第二库函数程序文件。
19、对第二库函数程序文件进行交叉编译,得到函数替换文件。
20、结合第一方面,在一些可能的实现方式中,对第二库函数程序文件进行交叉编译,得到函数替换文件,包括:
21、通过buildroot构建交叉编译工具链。
22、基于交叉编译工具链对第二库函数程序文件进行交叉编译,得到函数替换文件。
23、结合第一方面,在一些可能的实现方式中,电子设备为路由器。
24、结合第一方面,在一些可能的实现方式中,在对电子设备的设备固件程序进行仿真的过程之前还包括:
25、获取电子设备的芯片、电子设备的架构和电子设备的libc库版本。
26、基于电子设备的芯片、电子设备的架构和电子设备的libc库版本,搭建电子涉笔的设备固件程序运行所需的环境。
27、第二方面,本申请实施例提供了一种基于延迟绑定的设备固件仿真装置,包括:
28、第一定位模块,用于在对电子设备的设备固件程序进行仿真的过程中,若监测到指定的程序异常信息,基于所述指定的程序异常信息,确定所述指定的程序异常信息的输出位置,其中,所述指定的程序异常信息包括下述至少一项:硬件缺失信息、网络配置缺失信息以及文件缺失信息。
29、第二定位模块,用于基于指定的程序异常信息的输出位置和设备固件的控制结构,确定使设备固件程序进入异常分支的判断函数;其中,异常分支为指定的程序异常信息的输出位置所在的分支。
30、搜索模块,用于基于判断函数寻找第一库函数;其中,第一库函数为影响判断函数的判断结果的库函数。
31、运算模块,用于基于第一库函数通过符号执行生成目标返回值;目标返回值使判断函数不进入异常分支。
32、替换模块,用于基于目标返回值对第一库函数进行修改,得到函数替换文件;其中,函数替换文件为固件程序的可执行文件。
33、配置模块,用于将函数替换文件设置为与第一库函数所在的可执行文件相比优先执行的文件,重新进行设备固件程序的仿真。
34、第三方面,本申请实施例提供了一种终端设备,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器执行所述计算机程序时实现如第一方面任一项所述的基于延迟绑定的设备固件仿真方法。
35、第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的基于延迟绑定的设备固件仿真方法。
36、可以理解的是,上述第二方面至第四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
37、本申请实施例与现有技术相比存在的有益效果是:
38、本申请在监测到指定的程序异常信息之后,确定程序异常信息的输出位置,进而找到进入异常分支的判断函数,最终确定第一库函数,并通过符号执行的方式得到目标返回值,并根据目标返回值对第一库函数进行修改得到函数替换文件,将函数替换文件设置为与第一库函数所在文件相比优先执行的文件。该方式未大量使用符号执行,能够加快cpu的处理速度和减小资源占用,也未使用模本文档来自技高网...
【技术保护点】
1.一种基于延迟绑定的设备固件仿真方法,其特征在于,包括:
2.如权利要求1所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述基于所述指定的程序异常信息,确定所述指定的程序异常信息的输出位置,包括:
3.如权利要求2所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述基于所述指定的程序异常信息,在所述设备固件程序中查找所述指定的程序异常信息对应的字符串,包括:
4.如权利要求1所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述基于所述目标返回值对所述第一库函数进行修改,得到函数替换文件,包括:
5.如权利要求4所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述对所述第二库函数程序文件进行交叉编译,得到所述函数替换文件,包括:
6.如权利要求1所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述电子设备为路由器。
7.如权利要求1所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述在对电子设备的设备固件程序进行仿真的过程之前还包括:
8.一种基于延迟绑定的设备固件仿真装置,其特征在
9.一种终端设备,包括:处理器和存储器,所述存储器中存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的基于延迟绑定的设备固件仿真方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于延迟绑定的设备固件仿真方法。
...【技术特征摘要】
1.一种基于延迟绑定的设备固件仿真方法,其特征在于,包括:
2.如权利要求1所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述基于所述指定的程序异常信息,确定所述指定的程序异常信息的输出位置,包括:
3.如权利要求2所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述基于所述指定的程序异常信息,在所述设备固件程序中查找所述指定的程序异常信息对应的字符串,包括:
4.如权利要求1所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述基于所述目标返回值对所述第一库函数进行修改,得到函数替换文件,包括:
5.如权利要求4所述的基于延迟绑定的设备固件仿真方法,其特征在于,所述对所述第二库函数程序文件进行交叉编译,得到所述函数替换文件,包括:
...【专利技术属性】
技术研发人员:张光华,常继友,陈放,丁任霜,王会勇,
申请(专利权)人:河北科技大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。