模糊测试方法及相关设备

文档序号:32350293发布日期:2022-11-26 12:46阅读:46来源:国知局
模糊测试方法及相关设备

1.本技术涉及物联网安全技术领域,尤其涉及一种模糊测试方法及相关设备。


背景技术:

2.模糊测试是一种提供非预期的输入并监视异常结果来发现物联网设备的固件中漏洞的方法。相关技术中,一般选择真实设备作为模糊测试的对象,由于使用真实设备无法添加高效精确的输出监控手段,会影响模糊测试的结果准确性。此外,对于相关技术的基于固件仿真技术的模糊测试方法,测试用例不满足消息依赖,且没有考虑种子变异策略,检测漏洞的能力较弱。


技术实现要素:

3.有鉴于此,本技术的目的在于提出一种模糊测试方法及相关设备,以解决或部分解决上述问题。
4.本技术第一方面,提供了一种模糊测试方法,包括:根据预先仿真得到的固件,获取原始报文;响应于确定所述原始报文的数量大于一个,根据所述原始报文之间的依赖关系生成关联报文序列;其中,所述依赖关系表征所述原始报文被预先搭建的网页服务器处理的顺序;确定所述原始报文中的目标原始报文,将所述目标原始报文解析为预先设计的结构体,并选择所述结构体的任意一个节点进行变异;对变异后的所述结构体进行序列化得到更新的目标原始报文以及更新的关联报文序列;将所述更新的关联报文序列发送至所述网页服务器,以进行模糊测试。
5.本技术第二方面,提供了一种模糊测试装置,包括:获取模块,被配置为:根据预先仿真得到的固件,获取原始报文;生成模块,被配置为:响应于确定所述原始报文的数量大于一个,根据所述原始报文之间的依赖关系生成关联报文序列;其中,所述依赖关系表征所述原始报文被预先搭建的网页服务器处理的顺序;变异模块,被配置为:确定所述原始报文中的目标原始报文,将所述目标原始报文解析为预先设计的结构体,并选择所述结构体的任意一个节点进行变异;更新模块,被配置为:对变异后的所述结构体进行序列化得到更新的目标原始报文以及更新的关联报文序列;发送模块,被配置为:将所述更新的关联报文序列发送至所述网页服务器,以进行模糊测试。
6.本技术第三方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,其特征在于,所述处理器执行所述计算机程序时
实现如第一方面所述的方法。
7.本技术第四方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其特征在于,所述计算机指令用于使计算机执行如第一方面所述的方法。
8.从上面所述可以看出,本技术提供的模糊测试方法及相关设备,基于固件仿真技术,成本低、适用范围广,并且可以实现精确的输出监控,避免了真实设备重启造成的开销;将满足依赖关系的关联报文序列进行变异并发送给服务器以获取反馈结果,保证了变异的畸形度,且解决了测试用例不满足消息依赖和变异后报文的结构合法性低的问题,从而提高模糊测试的效率和漏洞挖掘能力。
附图说明
9.为了更清楚地说明本技术或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
10.图1为本技术实施例的模糊测试方法的流程示意图;图2为本技术实施例的原始报文格式的示意图;图3为本技术实施例的示例性的关联报文序列的组成方式的示意图;图4为本技术实施例的模糊测试装置的结构示意图;图5为本技术实施例的电子设备的结构示意图。
具体实施方式
11.为使本技术的目的、技术方案和优点更加清楚明白,以下结合附图对本技术的实施例进行详细说明。
12.需要说明的是,除非另外定义,本技术实施例使用的技术术语或者科学术语应当为本技术所属领域内具有一般技能的人士所理解的通常意义。本技术实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
13.随着物联网时代的来临,物联网设备得以迅速发展和广泛应用。同时,针对物联网设备的安全攻击事件也在不断攀升。物联网设备存在的大量未知漏洞,不仅为设备自身,也为网络空间带来了很多潜在的威胁。并且,物联网设备大部分漏洞都存在于设备固件中。
14.模糊测试是一种提供非预期的输入并监视异常结果来发现物联网设备的固件中漏洞的方法。相关技术中,一般选择真实设备作为模糊测试的对象,由于使用真实设备无法添加高效精确的输出监控手段,会影响模糊测试的结果准确性。并且设备的启动和重启会造成很大的开销,导致模糊测试吞吐量低,最终影响模糊测试的效率。另外,物联网设备种
类繁多,部分设备价格昂贵,导致成本较高。
15.此外,对于相关技术的基于固件仿真技术的模糊测试方法,测试用例不满足消息依赖,且没有考虑种子变异策略,检测漏洞的能力较弱。
16.鉴于此,本技术实施例提供了一种模糊测试方法及相关设备。基于固件仿真技术,成本低、适用范围广,并且可以实现精确的输出监控,避免了真实设备重启造成的开销;将满足依赖关系的关联报文序列进行变异并发送给服务器以获取反馈结果,保证了变异的畸形度,且解决了测试用例不满足消息依赖和变异后报文的结构合法性低的问题,从而提高模糊测试的效率和漏洞挖掘能力。
17.图1示出了本技术实施例的模糊测试方法100的流程示意图。如图1所示,该方法100可以包括以下步骤。
18.步骤s101、根据预先仿真得到的固件,获取原始报文。
19.本实施例中,实现固件的自动化仿真,以在固件仿真的基础上进行模糊测试;根据所述固件,得到模拟设备。例如,根据仿真得到的固件,模拟出一个智能手表。这样,固件的成功仿真为模糊测试得以进行提供前提条件,从而避免以真实设备作为模糊测试的对象而影响模糊测试的结果准确性和效率。
20.具体实施时,固件仿真过程包括固件解压缩和固件仿真执行。固件仿真执行包括架构识别、nvram模拟以及两阶段仿真执行。
21.本实施例中,控制所述模拟设备和预先搭建的网页服务器进行网络交互,以生成请求报文和响应报文;根据所述请求报文的统一资源定位符,选取符合预先设定的规则的所述请求报文作为所述原始报文。具体的,由于模拟设备具有web页面,在浏览器上可以设置和访问。这样,通过爬虫技术操作浏览器和模拟设备,控制浏览器和模拟设备交互,就会生成请求和响应,就可以捕获原始报文。
22.具体实施时,为获取原始报文首先要完成固件的web(world wide web,全球广域网)界面初始化工作。当固件仿真成功后,发现并启动其web服务,若可以在浏览器正常访问固件的web界面,则初始化工作完成。
23.具体实施时,向爬虫程序提供固件web接口的主页登录地址以及用户名和密码,爬虫程序识别输入框填充用户名和密码并点击登录按钮。
24.可以理解,对于一条请求报文,可以是不会发送任何请求的静态资源,也可以是会发送多个请求的复杂页面,因此需要预先设定一定的规则,并通过这些规则过滤掉无用的请求报文。例如,查看一张无关紧要的图片,不涉及安全问题,对漏洞挖掘没有作用。由于,对于一条请求报文,其统一资源定位符(uniform resource locator,url)是其较直观的内容,可以通过url与其他请求报文进行区分,则用于过滤掉无用的请求报文的规则可以设定为:请求静态资源的请求报文以及域名不是被测固件web接口ip(internet protocol,网络层协议)地址的url(请求报文)。
25.这样,url将各web界面连接起来,爬虫程序先从固件web主页面提取新的url,然后递归爬取这些新url来获得更多界面,并且,并非所有的url都需要递归遍历,只涉及没有被上述规则过滤掉的请求报文。
26.具体实施时,对于每一个url,首先分析其html(hyper text markup language,超文本标记语言)代码,识别其中的输入框和按钮元素,然后根据输入框的属性为其赋值,最
后选择一个按钮元素点击触发提交事件促使前端代码或javascript代码得到报文。需要说明的是,每个html页面可能会有很多按钮元素,需要把每个元素都遍历一遍以防止漏掉一些元素,从而防止发送到服务器的报文中可能缺少某个字段,而导致可能无法触发想要的效果(例如,崩溃)。因此,对于每一个url,维护一个字典,记录每个元素的信息遍历所有按钮元素重复上述步骤以得到全面的报文。
27.具体实施时,在本地搭建代理服务器,然后配置浏览器代理使其网络访问都经过本地代理,通过代理捕获每次点击操作后web接口的网络交互,然后把每次操作后所捕获的报文打上时间戳并按照时间顺序进行存储。可以理解,需要设定一定的规则对报文进行过滤:排除url的域名不是被测固件web接口ip地址的报文;排除请求静态资源的报文;排除url地址重复的报文。这样,通过上述规则对报文进行过滤,只收集可能存在依赖关系的请求报文作为原始报文。
28.需要说明的是,本实施例中的原始报文基于http/1.1协议。图2示出了本技术实施例的原始报文格式。如图2所示,原始报文包括请求行、请求头、请求空行和请求体。可以理解,图2中的深色部分是需要严格遵守的http协议规范,例如,请求行中请求方法、url和协议版本必须用空格分割,请求头后必须有请求空行,请求体中的数据必须是的形式且以&分割,请求头的字段名称和字段值之间必须用冒号分割等;图2中的白色部分是报文的数据部分,例如,请求头和请求体中的键值对、http请求方法、http协议版本等。
29.步骤s102、响应于确定所述原始报文的数量大于一个,根据所述原始报文之间的依赖关系生成关联报文序列;其中,所述依赖关系表征所述原始报文被预先搭建的网页服务器处理的顺序。
30.本实施例中,响应于确定所述原始报文的数量大于一个,确定所述原始报文之间的依赖关系;根据所述依赖关系确定所述原始报文的存储顺序;将所述原始报文按照所述存储顺序进行存储而生成所述关联报文序列。
31.具体实施时,对依赖关系的分析对象是上述获取的原始报文(即,所捕获的两个操作间的请求报文,故分析的粒度是操作级)。可以理解,若两个操作间仅包含一条原始报文,则将该原始报文标记为单步报文,则只需要提取报文内部依赖;若两个操作间包含多条原始报文,则需要分析这些原始报文之间的外部依赖和内部依赖。具体的,报文内部依赖来自于报文内部字段类型、字段长度等约束条件,报文外部依赖主要包括身份验证依赖、状态驱动依赖和参数传递依赖。
32.进一步的,报文内部依赖主要来自于前端对输入数据的校验,在原始报文的获取阶段,通过分析每个url对应的前端html代码维护了一个字典库,字典库记录了各html元素的信息,通过这些信息可以提取出报文内部依赖。
33.需要说明的是,单步报文不依赖于网页服务器状态或其他报文,每个单步报文都可以独立执行,并且可以得到网页服务器正确的响应;多步报文由多条具有依赖关系的报文组成,只有满足依赖关系并且按照正确的顺序发送多步报文至网页服务器,才可以得到网页服务器正确的响应。一般的,多步报文由auth授权报文、trans过渡报文、act执行报文构成。
34.其中,auth授权报文可以使网页服务器进入授权状态,以便网页服务器可以接收
后续报文。可以理解,出于安全考虑,需要进行登录状态校验:当auth授权报文到达网页服务器时,判断当前是否处于已登录状态,如果当前用户未登录,则直接返回响应让用户登录而不会做其他后续处理。
35.trans过渡报文可以驱使网页服务器进入就绪状态,以使网页服务器在接收到后续报文时可以正确完成业务逻辑的处理并返回响应给前端。具体的,trans过渡报文包括状态驱动报文和参数请求报文:状态驱动报文可以驱使网页服务器进入就绪状态,以使后续报文可以得到正确处理;参数请求报文可以获取网页服务器的参数值,以使后续报文可以携带该参数值,从而通过网页服务器对参数字段进行的安全校验,从而完成业务逻辑的处理。
36.act执行报文可以被网页服务器正确处理以得到预期响应。
37.在一些实施例中,在访问固件web界面时首先会进入登录页面,找到第一个表单填充操作作为登录操作,并将其触发的请求报文标记为auth授权报文,以满足身份验证依赖。可以理解,由于大多数漏洞需要在用户登录状态下发送攻击报文才能触发,因此必须保持用户登录状态,这就意味着身份验证依赖。
38.在一些实施例中,由于网页服务器的状态是由请求驱动的,可以对捕获到的报文打上时间戳,通过控制报文到达网页服务器的先后顺序来满足状态驱动依赖。这样,通过请求的时间顺序一定程度上可以反映报文状态驱动依赖。
39.在一些实施例中,根据两个操作间所获取的原始报文的数量,确定原始报文是否为act执行报文以对原始报文进行标记。当两个操作间只有一条原始报文,直接将该原始报文标记为act执行报文;当两个操作间具有多条原始报文,解析这些原始报文之间的参数传递依赖。
40.具体实施时,可以将两个操作间的多个请求的集合记为,其对应的响应集记为,对于任意的请求,存在唯一的响应与之对应。可以理解,本实施例中的请求即为上述所获取的原始报文。进一步的,对于每个,从的url和请求体中提取所有参数字段k(key),得到k的集合;对于每个,遍历集合k从的响应体中匹配。如果的响应体中包含,表示匹配成功,则将对应的标记为trans过渡报文,找到包含的请求并将其标记为act执行报文。这样,则是网页服务器校验的参数字段,trans过渡报文从网页服务器获得参数的值并将其传递给act执行报文,act执行报文携带到达网页服务器即可通过参数校验完成后续的业务逻辑。
41.这样,通过匹配参数字段来识别参数传递依赖关系,从而根据参数传递依赖关系确定原始报文中的trans过渡报文和act执行报文,从而生成满足依赖关系的关联报文序列。
42.在一些实施例中,根据所述原始报文之间的依赖关系生成关联报文序列。该关联报文序列的数据结构可以是队列。具体的,利用队列这种数据结构,依次将根据依赖关系确定的auth授权报文、trans过渡报文、act执行报文加入队列,即可得到关联报文序列。这样,利用队列先进先出的特性来存储原始报文以生成关联报文序列,从而保证原始报文按照预期的顺序发送至网页服务器,以使原始报文按照预期的顺序被网页服务器所处理。
43.需要说明的是,关联报文序列并不是必须由auth授权报文、trans过渡报文、act执行报文三种组成。参考图3,为本技术实施例的示例性的关联报文序列的组成方式:如(a)所示,关联报文序列可以由auth授权报文和act执行报文组成;如(b)所示,关联报文序列可以包括多条trans过渡报文以满足需要多条报文才能驱使网页服务器进入就绪状态的情况;如(c)所示,关联报文序列包括auth授权报文、trans过渡报文、act执行报文。
44.在另一个实施例中,在生成关联报文序列的过程中可以不按照一定的存储顺序对原始报文进行存储,但是需要对每一条原始报文作标注以标记用于后续将这些原始报文发送至网页服务器的发送顺序,从而保证这些原始报文能够被网页服务器正确处理。
45.步骤s103、确定所述原始报文中的目标原始报文,将所述目标原始报文解析为预先设计的结构体,并选择所述结构体的任意一个节点进行变异。
46.本实施例中,根据所述原始报文之间的依赖关系确定所述原始报文中的目标原始报文,所述目标原始报文为act执行报文;将act执行报文解析为预先设计的结构体,且该结构体是基于http协议规范设计的。
47.具体的,该结构体包括请求行、请求头、输入数据、分值以及报文类型。其中,请求行包括请求方法、请求路径和http协议版本;请求头都是键值对的形式,可以采用字典结构进行存储;输入数据包括原始报文的统一资源定位符中携带的数据以及所述请求体中的数据,且为key=value形式的字典结构;分值表示变异的优先级,即分值越高,包含该act执行报文的关联报文序列在后续的变异阶段被选取而进行变异操作的概率越大;报文类型即auth授权报文、trans过渡报文、act执行报文。
48.可以理解,因为输入数据来自于用户输入的数据(即,输入框输入的内容,本实施例中通过爬虫自动识别输入框,并填对应的值以模拟得到输入数据),因此后续的变异操作主要集中于输入数据。而分值和报文类型不属于原始报文的内容,因此不对其进行变异操作,但分值和报文类型对于变异操作有重要的指导意义。
49.在一些实施例中,关联报文序列的分值的初始值为0,并在模糊测试执行过程中根据反馈结果对分值进行动态调整。例如,当包括多项逻辑步骤时,将关联报文序列a发送至网页服务器,在第一步就出现问题,因逻辑不符而被网页服务器拒绝;将关联报文序列b发送至网页服务器,可以执行到第二步。虽然发送关联报文序列a或关联报文序列b均没有执行完整的逻辑,这是因为崩溃是最理想的结果,需要一步一步最终才能触发崩溃(例如,可能需要执行到第五步才可以触发漏洞),这样的话,能够执行的步骤越多则越有效。因此,证明关联报文序列b相较于关联报文序列a更能够深入网页服务器的逻辑,即,关联报文序列b相较于关联报文序列a更有效,因此给关联报文序列b赋更高的分值,从而根据分值优先选取关联报文序列b进行变异。
50.在一些实施例中,所述结构体的每一个节点继承预先设计的基础数据类。具体的,该基础数据类包括节点值、数据类型、数据长度、执行标记以及分值。所述节点值为字符串
类型,且该节点值对应后续更新的关联报文序列中更新的目标原始报文的字段值(即,最终可以发送给网页服务器的关联报文序列中act执行报文的字段值);所述数据类型表示所述节点所执行的变异操作,且数据类型支持字符串、数值、枚举三种类型;所述执行标记表示所述节点是否能够执行变异操作;所述分值表示所述节点进行变异的优先级。这样,通过数据类型、数据长度、执行标记以及分值可以反映节点属性。
51.其中,所述数据类型决定了所述节点可以执行的变异操作。例如,若为字符串,则不能变异为数字。然而,如果没有标记类型会导致随便变异,则无法保证合法性。
52.这样,基于该基础数据类,对所述结构体的每一个节点进行统一规范,以便后续根据节点的属性选择相应的变异操作。
53.在一些实施例中,基于上述所设计的结构体,选择所述结构体的任意一个节点进行变异。由于固件web接口的通信报文是高度结构化的,而传统的模糊测试的变异方法很难生成结构合法并且符合后端业务逻辑的测试报文。
54.本实施例中,变异方法包括节点内变异和节点间变异。
55.其中,节点内变异是指对基础数据类的节点值进行变异。节点内变异的具体变异策略如下。
56.(1)枚举类型变异:本实施例将http请求方法定义为枚举类型,枚举类型对该字段有更强的约束,如在对http请求方法进行变异时,只能变异为其他的枚举类型,这样就可以避免post变异为poxt等情况,使变异后的报文最大化满足http协议约束。
57.(2)数据扩充:在数据后追加长字符串或执行命令,可以触发潜在的远程命令执行漏洞或内存损坏漏洞,主要针对字符串类型的数据进行变异。
58.(3)数据置空:如果仅仅依靠前端校验,服务器或后端对于空数据没有响应的校验或处理措施,那么就有可能触发安全漏洞。
59.(4)整数替换:用经典的模糊测试边界值替换整数类型的值,那么就有可能触发整数溢出漏洞。基础数据类的数据类型仅定义了枚举类、字符串、数值三种类型,对于数值类型的数据,本实施例通过正则匹配识别其中的整数,将匹配到的整数替换为典型的整数边界值,如和,其中。
60.(5)类型变更:改变数据类型可能会导致数据校验错误而触发相关漏洞。如将数值类型的数据替换为随机字符串。
61.(6)特殊字符替换:用构造的特殊字符串替换字符串类型的数据。如将请求路径《结构体-请求行-请求路径》的值变异为目录穿越型路径,就有可能导致隐私泄露问题。
62.进一步的,节点整体变异(节点间变异)指对整个节点进行删除、插入等操作,因为http报文高度结构化的特性,所以对结构体的请求头和请求行进行节点整体变异容易导致报文的不合法,所以节点整体变异的对象是约束性较弱的结构体-输入数据中的键值对。节点整体变异的具体策略如下。
63.(1)节点删除:随机删除结构体-输入数据中的一个键值对,无论是删除统一资源定位符中携带的还是所述请求体中的键值对,都不影响后续序列化后报文结构的合法性。
64.(2)节点互换:随机选取结构体-输入数据中的两个键值对,交换它们的值。因为交换键值对的顺序并不会对报文有实际的影响,所以采用交换值的方法。
65.(3)节点插入:将随机构造的键值对插入结构体-输入数据中,可能触发未知参数解析漏洞。
66.这样,结合节点内变异和节点间变异两种方式,既可以实现节点值的小步变异,也可以实现节点间的大步突变,在保证报文结构合法性的同时也最大化满足了测试用例的数据畸形性。
67.步骤s104、对变异后的所述结构体进行序列化得到更新的目标原始报文以及更新的关联报文序列。
68.由于目标原始报文的结构体不符合http规范,因此需要基于http协议语法,利用相应的分隔符将目标原始报文的结构体的各字段进行拼接得到请求行、请求头和请求体,然后将各部分拼接为完整的http报文。这样,通过将变异后的结构体进行序列化得到结构合法的更新的目标原始报文,从而得到更新的关联报文序列,以得到可以传输给网页服务器的形式。
69.步骤s105、将所述更新的关联报文序列发送至所述网页服务器,以进行模糊测试。
70.在一些实施例中,当将更新的关联报文序列发送至网页服务器以进行模糊测试后,需要监控执行信息和捕获异常情况,以根据网页服务器的反馈信息对关联报文序列进行动态调整以及调度变异的优先级。例如,若关联报文序列导致设备崩溃,说明该关联报文序列很有效,可能触发了某个漏洞。
71.基于同一技术构思,与上述任一实施例方法相对应的,本技术还提供了一种模糊测试装置400。
72.参考图4,所述模糊测试装置400,包括:获取模块401,被配置为:根据预先仿真得到的固件,获取原始报文;生成模块402,被配置为:响应于确定所述原始报文的数量大于一个,根据所述原始报文之间的依赖关系生成关联报文序列;其中,所述依赖关系表征所述原始报文被预先搭建的网页服务器处理的顺序;变异模块403,被配置为:确定所述原始报文中的目标原始报文,将所述目标原始报文解析为预先设计的结构体,并选择所述结构体的任意一个节点进行变异;更新模块404,被配置为:对变异后的所述结构体进行序列化得到更新的目标原始报文以及更新的关联报文序列;发送模块405,被配置为:将所述更新的关联报文序列发送至所述网页服务器,以进行模糊测试。
73.由获取模块401、生成模块402、变异模块403、更新模块404和发送模块405组成的模糊测试装置,利用获取模块401实现固件仿真和原始报文的获取,成本低、适用范围广,避免了真实设备无法添加高效精确的输出监控手段而会影响模糊测试的结果准确性的问题;利用生成模块402、变异模块403、更新模块404和发送模块405将满足依赖关系的关联报文序列进行变异并发送给网页服务器以获取反馈结果,保证了变异的畸形度和变异后报文的结构合法性,从而提高模糊测试的效率和漏洞挖掘能力。
74.在一些可选的实施例中,模糊测试装置400可以进一步包括输出监控模块和调度模块(图4中未示出)。具体的,输出监控模块被配置为监控执行信息和捕获异常情况,并将网页服务器的反馈信息发送给调度模块;调度模块被配置为根据接收到的输出监控模块的
信息对关联报文序列进行动态调整和度变异的优先级,以及调度模糊测试装置400中的各模块进行协同工作。
75.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本技术时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
76.上述实施例的装置用于实现前述任一实施例中相应的模糊测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
77.基于同一技术构思,与上述任一实施例方法相对应的,本技术还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任一实施例所述的模糊测试方法。
78.图5示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
79.处理器1010可以采用通用的cpu(central processing unit,中央处理器)、微处理器、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
80.存储器1020可以采用rom(read only memory,只读存储器)、ram(random access memory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
81.输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
82.通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。
83.总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
84.需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
85.上述实施例的电子设备用于实现前述任一实施例中相应的模糊测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
86.基于同一技术构思,与上述任一实施例方法相对应的,本技术还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一实施例所述的模糊测试方法。
87.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
88.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的模糊测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
89.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本技术的范围(包括权利要求)被限于这些例子;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
90.另外,为简化说明和讨论,并且为了不会使本技术实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本技术实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本技术实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本技术的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本技术实施例。因此,这些描述应被认为是说明性的而不是限制性的。
91.尽管已经结合了本技术的具体实施例对本技术进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
92.本技术实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本技术实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1