一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

WIFI程序的模糊测试方法及装置与流程

2022-03-23 06:22:13 来源:中国专利 TAG:

wifi程序的模糊测试方法及装置
技术领域
1.本技术涉及模糊测试技术领域,尤其涉及一种wifi程序的模糊测试方法及装置。


背景技术:

2.为了保证wifi通信的安全性,需要对wifi协议栈进行漏洞挖掘。
3.目前,在对wifi协议栈进行漏洞挖掘时,通常是先基于需要进行漏洞挖掘的wifi协议栈编写待测试wifi程序,再基于ota技术对待测试wifi程序进行模糊测试。其中,基于ota技术对待测试wifi程序进行模糊测试的具体过程为:先在目标终端设备中运行待测试wifi程序,再通过其他终端设备向目标终端设备的wifi芯片发送测试wifi数据帧,目标终端设备的wifi芯片在接收到测试wifi数据帧后,将测试wifi数据帧发送给待测试wifi程序,以进行模糊测试。然而,在实际测试过程中,部分测试wifi数据帧会被目标终端设备的wifi芯片拦截,导致这些测试wifi数据帧无法发送至待测试wifi程序,从而导致无法对待测试wifi程序中的某些处理函数进行模糊测试。因此,如何全面的对待测试wifi程序进行模糊测试是至关重要的。


技术实现要素:

4.本技术实施例提供一种wifi程序的模糊测试方法及装置,主要目的在于全面的对待测试wifi程序进行模糊测试。
5.为解决上述技术问题,本技术实施例提供如下技术方案:
6.第一方面,本技术提供了一种wifi程序的模糊测试方法,所述方法应用于运行待测试wifi程序的目标终端设备,包括:
7.获取目标处理函数对应的内存地址,其中,所述目标处理函数为所述待测试wifi程序中用于处理目标类型数据帧以进行wifi通信的函数,所述目标处理函数中包含多个目标参数;
8.按照预置规则生成模拟参数值集合,其中,所述模拟参数值集合中包含每个所述目标参数对应的模拟参数值;
9.根据所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
10.根据所述目标处理函数对应的内存地址调用所述目标处理函数,以实现对所述目标处理函数进行模糊测试。
11.可选的,所述待测试wifi程序中包含多个处理函数;在所述按照预置规则生成模拟参数值集合之前,包括:
12.通过目标hook框架确定每个所述处理函数对应的内存地址;
13.控制所述目标终端设备与其他终端设备进行wifi通信;
14.根据所述目标hook框架和每个所述处理函数对应的内存地址监控每个所述处理函数,以获得每个所述处理函数包含的各个目标参数对应的样本参数值;
15.将每个所述处理函数包含的各个目标参数对应的样本参数值存储至所述目标终端设备的本地存储空间中。
16.可选的,所述通过目标hook框架确定每个所述处理函数对应的内存地址,包括:
17.控制所述待测试wifi程序运行;
18.获取每个所述处理函数对应的函数名;
19.通过所述目标hook框架获取所述待测试wifi程序对应的进程基址;
20.通过预置反编译器和每个所述处理函数对应的函数名获取每个所述处理函数对应的函数偏移值;
21.根据所述进程基址和每个所述处理函数对应的函数偏移值,确定每个所述处理函数对应的内存地址。
22.可选的,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;所述按照预置规则生成模拟参数值集合,包括:
23.在所述本地存储空间中获取所述第一目标参数对应的样本参数值、所述第二目标参数对应的样本参数值和所述第四目标参数对应的样本参数值;
24.根据预置程序和所述第二目标参数对应的样本参数值生成所述第二目标参数对应的测试参数值;
25.根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
26.根据所述第一目标参数对应的样本参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的样本参数值构建所述模拟参数值集合。
27.可选的,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;所述按照预置规则生成模拟参数值集合,包括:
28.获取所述第一目标参数对应的预置参数值、所述第二目标参数对应的预置参数值和所述第四目标参数对应的预置参数值,其中,各个所述预置参数值为预先设定的;
29.根据预置程序和所述第二目标参数对应的预置参数值生成所述第二目标参数对应的测试参数值;
30.根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
31.根据所述第一目标参数对应的预置参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的预置参数值构建所述模拟参数值集合。
32.可选的,所述根据所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中,包括:
33.根据目标hook框架和所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
34.所述根据所述目标处理函数对应的内存地址调用所述目标处理函数,包括:
35.根据所述目标hook框架和所述目标处理函数对应的内存地址调用所述目标处理函数。
36.可选的,在所述根据所述目标处理函数对应的内存地址调用所述目标处理函数之后,所述方法还包括:
37.通过目标hook框架对所述待测试wifi程序对应的进程进行监控;
38.当所述目标hook框架出现异常时,获取进程日志;
39.根据所述目标hook框架出现异常时的时刻值,在所述进程日志中获取所述待测试wifi程序对应的崩溃信息和崩溃上下文信息。
40.可选的,所述第一目标参数具体为配置信息参数,所述第一目标参数用于存储当前网卡接口信息、本地配置信息和状态机信息,所述第二目标参数具体为数据帧载体参数,所述第二目标参数具体用于存储wifi数据帧,所述第三目标参数具体为数据帧长度参数,用于存储所述wifi数据帧对应的真实字节长度,所述第四目标参数具体为数据帧无线配置信息参数,所述第四目标参数用于存储所述wifi数据帧对应的速率信息、信道信息和信号强度信息。
41.第二方面,本技术还提供一种wifi程序的模糊测试装置,所述装置应用于运行待测试wifi程序的目标终端设备,包括:
42.第一获取单元,用于获取目标处理函数对应的内存地址,其中,所述目标处理函数为所述待测试wifi程序中用于处理目标类型数据帧以进行wifi通信的函数,所述目标处理函数中包含多个目标参数;
43.生成单元,用于按照预置规则生成模拟参数值集合,其中,所述模拟参数值集合中包含每个所述目标参数对应的模拟参数值;
44.输入单元,用于根据所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
45.调用单元,用于根据所述目标处理函数对应的内存地址调用所述目标处理函数,以实现对所述目标处理函数进行模糊测试。
46.可选的,所述待测试wifi程序中包含多个处理函数;所述装置还包括:
47.确定单元,用于在所述生成单元按照预置规则生成模拟参数值集合之前,通过目标hook框架确定每个所述处理函数对应的内存地址;
48.控制单元,用于控制所述目标终端设备与其他终端设备进行wifi通信;
49.第一监控单元,用于根据所述目标hook框架和每个所述处理函数对应的内存地址监控每个所述处理函数,以获得每个所述处理函数包含的各个目标参数对应的样本参数值;
50.存储单元,用于将每个所述处理函数包含的各个目标参数对应的样本参数值存储至所述目标终端设备的本地存储空间中。
51.可选的,所述确定单元包括:
52.控制模块,用于控制所述待测试wifi程序运行;
53.第一获取模块,用于获取每个所述处理函数对应的函数名;
54.第二获取模块,用于通过所述目标hook框架获取所述待测试wifi程序对应的进程基址;
55.第三获取模块,用于通过预置反编译器和每个所述处理函数对应的函数名获取每个所述处理函数对应的函数偏移值;
56.第一确定模块,用于根据所述进程基址和每个所述处理函数对应的函数偏移值,确定每个所述处理函数对应的内存地址。
57.可选的,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;所述生成单元包括:
58.第四获取模块,用于在所述本地存储空间中获取所述第一目标参数对应的样本参数值、所述第二目标参数对应的样本参数值和所述第四目标参数对应的样本参数值;
59.第一生成模块,用于根据预置程序和所述第二目标参数对应的样本参数值生成所述第二目标参数对应的测试参数值;
60.第二确定模块,用于根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
61.第一构建模块,用于根据所述第一目标参数对应的样本参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的样本参数值构建所述模拟参数值集合。
62.可选的,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;所述生成单元包括:
63.第五获取模块,用于获取所述第一目标参数对应的预置参数值、所述第二目标参数对应的预置参数值和所述第四目标参数对应的预置参数值,其中,各个所述预置参数值为预先设定的;
64.第二生成模块,用于根据预置程序和所述第二目标参数对应的预置参数值生成所述第二目标参数对应的测试参数值;
65.第三确定模块,用于根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
66.第二构建模块,用于根据所述第一目标参数对应的预置参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的预置参数值构建所述模拟参数值集合。
67.可选的,所述输入单元,具体用于根据目标hook框架和所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
68.所述调用单元,具体用于根据所述目标hook框架和所述目标处理函数对应的内存地址调用所述目标处理函数。
69.可选的,所述装置还包括:
70.第二监控单元,用于在所述调用单元根据所述目标处理函数对应的内存地址调用所述目标处理函数之后,通过目标hook框架对所述待测试wifi程序对应的进程进行监控;
71.第二获取单元,用于当所述目标hook框架出现异常时,获取进程日志;
72.第三获取单元,用于根据所述目标hook框架出现异常时的时刻值,在所述进程日志中获取所述待测试wifi程序对应的崩溃信息和崩溃上下文信息。
73.可选的,所述第一目标参数具体为配置信息参数,所述第一目标参数用于存储当前网卡接口信息、本地配置信息和状态机信息,所述第二目标参数具体为数据帧载体参数,所述第二目标参数具体用于存储wifi数据帧,所述第三目标参数具体为数据帧长度参数,用于存储所述wifi数据帧对应的真实字节长度,所述第四目标参数具体为数据帧无线配置信息参数,所述第四目标参数用于存储所述wifi数据帧对应的速率信息、信道信息和信号强度信息。
74.第三方面,本技术的实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行第一方面所述的wifi程序的模糊测试方法。
75.第四方面,本技术的实施例提供了一种wifi程序的模糊测试装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行第一方面所述的wifi程序的模糊测试方法。
76.借由上述技术方案,本技术提供的技术方案至少具有下列优点:
77.本技术提供一种wifi程序的模糊测试方法及装置,本技术能够在需要对待测试wifi程序进行模糊测试,即需要对待测试wifi程序包含的某个处理函数(即目标处理函数)进行模糊测试时,由目标终端设备先控制待测试wifi程序运行,再获取目标处理函数对应的内存地址,并按照预置规则生成目标处理函数对应的模拟参数值集合,最后根据目标处理函数对应的内存地址将模拟参数值集合中包含每个目标参数对应的模拟参数值输入至目标处理函数中,并根据目标处理函数对应的内存地址调用目标处理函数,从而实现对目标处理函数进行模糊测试。由于,目标终端设备可以基于自行生成的模拟参数值对待测试wifi程序中的任意一个处理函数进行模糊测试,因此,目标终端设备可以全面的对待测试wifi程序进行模糊测试。
78.上述说明仅是本技术技术方案的概述,为了能够更清楚了解本技术的技术手段,而可依照说明书的内容予以实施,并且为了让本技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本技术的具体实施方式。
附图说明
79.通过参考附图阅读下文的详细描述,本技术示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本技术的若干实施方式,相同或对应的标号表示相同或对应的部分,其中:
80.图1示出了本技术实施例提供的一种wifi程序的模糊测试方法流程图;
81.图2示出了本技术实施例提供的另一种wifi程序的模糊测试方法流程图;
82.图3示出了本技术实施例提供的一种wifi程序的模糊测试装置的组成框图;
83.图4示出了本技术实施例提供的另一种wifi程序的模糊测试装置的组成框图。
具体实施方式
84.下面将参照附图更详细地描述本技术的示例性实施方式。虽然附图中显示了本技术的示例性实施方式,然而应当理解,可以以各种形式实现本技术而不应被这里阐述的实
施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本技术,并且能够将本技术的范围完整的传达给本领域的技术人员。
85.需要注意的是,除非另有说明,本技术使用的技术术语或者科学术语应当为本技术所属领域技术人员所理解的通常意义。
86.本技术实施例提供一种wifi程序的模糊测试方法,该方法应用于运行待测试wifi程序的目标终端设备,具体如图1所示,该方法包括:
87.101、获取目标处理函数对应的内存地址。
88.在本技术实施例中,各个步骤中的执行主体为运行待测试wifi程序的目标终端设备;其中,待测试wifi程序为基于需要进行漏洞挖掘的wifi协议栈编写的,待测试wifi程序中包含有多个处理函数,每个处理函数负责处理一个类型的wifi数据帧;其中,目标处理函数可以为待测试wifi程序中的任意一个处理函数,即目标处理函数为待测试wifi程序中用于处理目标类型数据帧以进行wifi通信的函数,目标处理函数中包含多个目标参数。
89.在本技术实施例中,当需要对待测试wifi程序进行模糊测试,即需要对待测试wifi程序包含的某个处理函数进行模糊测试时,目标终端设备需要先控制待测试wifi程序运行,再获取目标处理函数对应的内存地址,以便后续基于目标处理函数对应的内存地址对目标处理函数进行模糊测试。
90.具体的,在本步骤中,工作人员可以预先根据ieee802_11_defs.h头文件确定待测试wifi程序包含的每个处理函数对应的函数名;若待测试wifi程序在编译过程中未去符号,则可以直接基于frida框架和目标处理函数对应的函数名获取目标处理函数对应的内存地址,即控制frida框架执行根据目标处理函数对应的函数名获取目标处理函数对应的内存地址的操作;若待测试wifi程序在编译过程中去符号,则需要先通过frida框架获取待测试wifi程序对应的进程基址,再通过反编译器和目标处理函数对应的函数名获取目标处理函数对应的函数偏移值,即控制反编译器执行根据目标处理函数对应的函数名获取目标处理函数对应的函数偏移值的操作,最后根据待测试wifi程序对应的进程基址和目标处理函数对应的函数偏移值,确定目标处理函数对应的内存地址。
91.102、按照预置规则生成模拟参数值集合。
92.其中,模拟参数值集合中包含每个目标参数对应的模拟参数值。
93.在本技术实施例中,目标终端设备在获取得到目标处理函数对应的内存地址后,需要按照预置规则生成目标处理函数对应的模拟参数值集合。
94.103、根据目标处理函数对应的内存地址将多个模拟参数值输入至目标处理函数中,并根据目标处理函数对应的内存地址调用目标处理函数,以实现对目标处理函数进行模糊测试。
95.在本技术实施例中,目标终端设备在生成目标处理函数对应的模拟参数值集合后,便可根据目标处理函数对应的内存地址将模拟参数值集合中包含每个目标参数对应的模拟参数值输入至目标处理函数中,并根据目标处理函数对应的内存地址调用目标处理函数,从而实现对目标处理函数进行模糊测试。
96.需要进行说明的是,在实际应用过程中可以重复执行上述步骤102及步骤103,从而实现对目标处理函数进行多轮模糊测试。
97.在本技术实施例中,目标终端设备采用上述步骤101至步骤103所述的方法便可实
现对待测试wifi程序中的每个处理函数进行模糊测试,从而完成全面的对待测试wifi程序进行模糊测试。
98.本技术实施例提供一种wifi程序的模糊测试方法,本技术实施例能够在需要对待测试wifi程序进行模糊测试,即需要对待测试wifi程序包含的某个处理函数(即目标处理函数)进行模糊测试时,由目标终端设备先控制待测试wifi程序运行,再获取目标处理函数对应的内存地址,并按照预置规则生成目标处理函数对应的模拟参数值集合,最后根据目标处理函数对应的内存地址将模拟参数值集合中包含每个目标参数对应的模拟参数值输入至目标处理函数中,并根据目标处理函数对应的内存地址调用目标处理函数,从而实现对目标处理函数进行模糊测试。由于,目标终端设备可以基于自行生成的模拟参数值对待测试wifi程序中的任意一个处理函数进行模糊测试,因此,目标终端设备可以全面的对待测试wifi程序进行模糊测试。
99.以下为了更加详细地说明,本技术实施例提供了另一种wifi程序的模糊测试方法,该方法应用于运行待测试wifi程序的目标终端设备,具体如图2所示,该方法包括:
100.201、获取目标处理函数对应的内存地址。
101.其中,关于步骤201、获取目标处理函数对应的内存地址,可以参考图1对应部分的描述,本技术实施例此处将不再赘述。
102.202、按照预置规则生成模拟参数值集合。
103.其中,目标处理函数具体包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;其中,第一目标参数具体为配置信息参数,第一目标参数用于存储当前网卡接口信息、本地配置信息和状态机信息,第二目标参数具体为数据帧载体参数,第二目标参数具体用于存储wifi数据帧,第三目标参数具体为数据帧长度参数,用于存储wifi数据帧对应的真实字节长度,第四目标参数具体为数据帧无线配置信息参数,第四目标参数用于存储wifi数据帧对应的速率信息、信道信息和信号强度信息,因此,第一目标参数的参数值包含当前网卡接口信息、本地配置信息和状态机信息,第二目标参数的参数值为wifi数据帧,在模糊测试过程中,第二目标参数的参数值具体为进行模糊测试所使用的畸形数据,第三目标参数的参数值用于表明wifi数据帧的真实字节长度,在模糊测试过程中,第三目标参数的参数值具体用于表明进行模糊测试所使用畸形数据的真实字节长度,第四目标参数的参数值包含进行模糊测试所使用畸形数据的速率信息、信道信息和信号强度信息。
104.在本技术实施例中,目标终端设备在获取得到目标处理函数对应的内存地址后,需要按照预置规则生成目标处理函数对应的模拟参数值集合。
105.具体的,在本步骤中,目标终端设备可以采用以下两种方式生成模拟参数值集合:
106.(1)预先获取待测试wifi程序中每个处理函数包含的各个目标参数对应的样本参数值,并将每个处理函数包含的各个目标参数对应的样本参数值存储至目标终端设备的本地存储空间中;生成模拟参数值集合的具体过程为:首先,在本地存储空间中获取第一目标参数对应的样本参数值、第二目标参数对应的样本参数值和第四目标参数对应的样本参数值;其次,根据预置程序和第二目标参数对应的样本参数值生成第二目标参数对应的测试参数值,即将第二目标参数对应的样本参数值输入至预置程序后,预置程序便会输出第二目标参数对应的测试参数值,其中,第二目标参数对应的测试参数值即为进行模糊测试所使用的畸形数据;再次,根据第二目标参数对应的测试参数值确定第三目标参数对应的测
试参数值,其中,第三目标参数对应的测试参数值用于表明第二目标参数对应的测试参数值的真实字节长度,例如,第二目标参数对应的测试参数值的真实字节长度为8字节,则第三目标参数对应的测试参数值为8字节;最后,根据第一目标参数对应的样本参数值、第二目标参数对应的测试参数值、第三目标参数对应的测试参数值和第四目标参数对应的样本参数值构建模拟参数值集合;其中,预置程序可以但不限于为:radamsa模糊器等等。
107.其中,预先获取待测试wifi程序中每个处理函数包含的各个目标参数对应的样本参数值的具体过程为:首先,通过目标hook框架确定每个处理函数对应的内存地址;其次,控制目标终端设备与其他终端设备进行wifi通信;再次,在目标终端设备与其他终端设备进行wifi通信的过程中,根据目标hook框架和每个处理函数对应的内存地址监控每个处理函数,即控制目标hook框架执行根据每个处理函数对应的内存地址监控每个处理函数的操作,从而获得每个处理函数包含的各个目标参数对应的样本参数值;最后,将每个处理函数包含的各个目标参数对应的样本参数值存储至目标终端设备的本地存储空间中;其中,目标hook框架可以但不限于为:frida框架等等。
108.具体的,通过目标hook框架确定每个处理函数对应的内存地址的具体过程可以为:首先,控制待测试wifi程序运行;然后,获取每个处理函数对应的函数名,其中,每个处理函数对应的函数名为工作人员预先根据ieee802_11_defs.h头文件确定的;其次,通过目标hook框架获取待测试wifi程序对应的进程基址;再次,通过预置反编译器和每个处理函数对应的函数名获取每个处理函数对应的函数偏移值,即控制预置反编译器执行根据每个处理函数对应的函数名获取每个处理函数对应的函数偏移值的操作;最后,根据待测试wifi程序对应的进程基址和每个处理函数对应的函数偏移值,确定每个处理函数对应的内存地址;其中,预置反编译器可以但不限于为:ida反编译器等等。
109.(2)首先,获取第一目标参数对应的预置参数值、第二目标参数对应的预置参数值和第四目标参数对应的预置参数值,其中,各个目标参数对应的预置参数值为工作人员预先设定的;其次,根据预置程序和第二目标参数对应的预置参数值生成第二目标参数对应的测试参数值,即将第二目标参数对应的预置参数值输入至预置程序后,预置程序便会输出第二目标参数对应的测试参数值,其中,第二目标参数对应的测试参数值即为进行模糊测试所使用的畸形数据;再次,根据第二目标参数对应的测试参数值确定第三目标参数对应的测试参数值,其中,第三目标参数对应的测试参数值用于表明第二目标参数对应的测试参数值的真实字节长度,例如,第二目标参数对应的测试参数值的真实字节长度为8字节,则第三目标参数对应的测试参数值为8字节;最后,根据第一目标参数对应的预置参数值、第二目标参数对应的测试参数值、第三目标参数对应的测试参数值和第四目标参数对应的预置参数值构建模拟参数值集合。
110.203、根据目标处理函数对应的内存地址将多个模拟参数值输入至目标处理函数中,并根据目标处理函数对应的内存地址调用目标处理函数,以实现对目标处理函数进行模糊测试。
111.在本技术实施例中,目标终端设备在生成目标处理函数对应的模拟参数值集合后,便可根据目标处理函数对应的内存地址将模拟参数值集合中包含每个目标参数对应的模拟参数值输入至目标处理函数中,并根据目标处理函数对应的内存地址调用目标处理函数,从而实现对目标处理函数进行模糊测试。
112.具体的,在本步骤中,目标终端设备根据目标处理函数对应的内存地址将多个模拟参数值输入至目标处理函数中的具体过程为:根据目标hook框架和目标处理函数对应的内存地址将多个模拟参数值输入至目标处理函数中,即控制目标hook框架执行根据目标处理函数对应的内存地址将多个模拟参数值输入至目标处理函数中的操作;目标终端设备根据目标处理函数对应的内存地址调用目标处理函数的具体过程为:根据目标hook框架和目标处理函数对应的内存地址调用目标处理函数,即控制目标hook框架执行根据目标处理函数对应的内存地址调用目标处理函数的操作。
113.204、监控待测试wifi程序,并在确定待测试wifi程序崩溃时,获取待测试wifi程序对应的崩溃信息和崩溃上下文信息。
114.在本技术实施例中,目标终端设备在根据目标处理函数对应的内存地址调用目标处理函数,从而实现对目标处理函数进行模糊测试后,需要监控待测试wifi程序,并在确定待测试wifi程序崩溃时,获取待测试wifi程序对应的崩溃信息和崩溃上下文信息,其具体过程为:
115.首先,通过目标hook框架对待测试wifi程序对应的进程进行监控;其次,由于,在目标hook框架对待测试wifi程序对应的进程进行监控的过程中,当待测试wifi程序崩溃时,目标hook框架会出现异常,因此,当目标hook框架出现异常时,可以确定待测试wifi程序崩溃,此时,需要获取进程日志,并根据目标hook框架出现异常的时刻值,在进程日志中获取待测试wifi程序对应的崩溃信息和崩溃上下文信息,以便后续工作人员根据待测试wifi程序对应的崩溃信息和崩溃上下文信息挖掘wifi协议栈中存在的漏洞。
116.为了实现上述目的,根据本技术的另一方面,本技术实施例还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的wifi程序的模糊测试方法。
117.为了实现上述目的,根据本技术的另一方面,本技术实施例还提供了一种wifi程序的模糊测试装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行上述所述的wifi程序的模糊测试方法。
118.进一步的,作为对上述图1及图2所示方法的实现,本技术另一实施例还提供了一种wifi程序的模糊测试装置,该装置应用于运行待测试wifi程序的目标终端设备。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。该装置应用于全面的对待测试wifi程序进行模糊测试,具体如图3所示,该装置包括:
119.第一获取单元301,用于获取目标处理函数对应的内存地址,其中,所述目标处理函数为所述待测试wifi程序中用于处理目标类型数据帧以进行wifi通信的函数,所述目标处理函数中包含多个目标参数;
120.生成单元302,用于按照预置规则生成模拟参数值集合,其中,所述模拟参数值集合中包含每个所述目标参数对应的模拟参数值;
121.输入单元303,用于根据所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
122.调用单元304,用于根据所述目标处理函数对应的内存地址调用所述目标处理函数,以实现对所述目标处理函数进行模糊测试。
123.进一步的,如图4所示,所述待测试wifi程序中包含多个处理函数;该装置还包括:
124.确定单元305,用于在生成单元302按照预置规则生成模拟参数值集合之前,通过目标hook框架确定每个所述处理函数对应的内存地址;
125.控制单元306,用于控制所述目标终端设备与其他终端设备进行wifi通信;
126.第一监控单元307,用于根据所述目标hook框架和每个所述处理函数对应的内存地址监控每个所述处理函数,以获得每个所述处理函数包含的各个目标参数对应的样本参数值;
127.存储单元308,用于将每个所述处理函数包含的各个目标参数对应的样本参数值存储至所述目标终端设备的本地存储空间中。
128.进一步的,如图4所示,确定单元305包括:
129.控制模块3051,用于控制所述待测试wifi程序运行;
130.第一获取模块3052,用于获取每个所述处理函数对应的函数名;
131.第二获取模块3053,用于通过所述目标hook框架获取所述待测试wifi程序对应的进程基址;
132.第三获取模块3054,用于通过预置反编译器和每个所述处理函数对应的函数名获取每个所述处理函数对应的函数偏移值;
133.第一确定模块3055,用于根据所述进程基址和每个所述处理函数对应的函数偏移值,确定每个所述处理函数对应的内存地址。
134.进一步的,如图4所示,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;生成单元302包括:
135.第四获取模块3021,用于在所述本地存储空间中获取所述第一目标参数对应的样本参数值、所述第二目标参数对应的样本参数值和所述第四目标参数对应的样本参数值;
136.第一生成模块3022,用于根据预置程序和所述第二目标参数对应的样本参数值生成所述第二目标参数对应的测试参数值;
137.第二确定模块3023,用于根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
138.第一构建模块3024,用于根据所述第一目标参数对应的样本参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的样本参数值构建所述模拟参数值集合。
139.进一步的,如图4所示,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;生成单元302包括:
140.第五获取模块3025,用于获取所述第一目标参数对应的预置参数值、所述第二目标参数对应的预置参数值和所述第四目标参数对应的预置参数值,其中,各个所述预置参数值为预先设定的;
141.第二生成模块3026,用于根据预置程序和所述第二目标参数对应的预置参数值生成所述第二目标参数对应的测试参数值;
142.第三确定模块3027,用于根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
143.第二构建模块3028,用于根据所述第一目标参数对应的预置参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的预置参数值构建所述模拟参数值集合。
144.进一步的,如图4所示,输入单元303,具体用于根据目标hook框架和所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
145.调用单元304,具体用于根据所述目标hook框架和所述目标处理函数对应的内存地址调用所述目标处理函数。
146.进一步的,如图4所示,该装置还包括:
147.第二监控单元309,用于在调用单元304根据所述目标处理函数对应的内存地址调用所述目标处理函数之后,通过目标hook框架对所述待测试wifi程序对应的进程进行监控;
148.第二获取单元310,用于当所述目标hook框架出现异常时,获取进程日志;
149.第三获取单元311,用于根据所述目标hook框架出现异常时的时刻值,在所述进程日志中获取所述待测试wifi程序对应的崩溃信息和崩溃上下文信息。
150.进一步的,如图4所示,所述第一目标参数具体为配置信息参数,所述第一目标参数用于存储当前网卡接口信息、本地配置信息和状态机信息,所述第二目标参数具体为数据帧载体参数,所述第二目标参数具体用于存储wifi数据帧,所述第三目标参数具体为数据帧长度参数,用于存储所述wifi数据帧对应的真实字节长度,所述第四目标参数具体为数据帧无线配置信息参数,所述第四目标参数用于存储所述wifi数据帧对应的速率信息、信道信息和信号强度信息。
151.本技术实施例提供一种wifi程序的模糊测试方法及装置,本技术实施例能够在需要对待测试wifi程序进行模糊测试,即需要对待测试wifi程序包含的某个处理函数(即目标处理函数)进行模糊测试时,由目标终端设备先控制待测试wifi程序运行,再获取目标处理函数对应的内存地址,并按照预置规则生成目标处理函数对应的模拟参数值集合,最后根据目标处理函数对应的内存地址将模拟参数值集合中包含每个目标参数对应的模拟参数值输入至目标处理函数中,并根据目标处理函数对应的内存地址调用目标处理函数,从而实现对目标处理函数进行模糊测试。由于,目标终端设备可以基于自行生成的模拟参数值对待测试wifi程序中的任意一个处理函数进行模糊测试,因此,目标终端设备可以全面的对待测试wifi程序进行模糊测试。
152.所述wifi程序的模糊测试装置包括处理器和存储器,上述第一获取单元、生成单元、输入单元和调用单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
153.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来全面的对待测试wifi程序进行模糊测试。
154.本技术实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述所述的wifi程序的模糊测试方法。
155.存储介质可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
156.本技术实施例还提供了一种wifi程序的模糊测试装置,所述装置包括存储介质;及一个或者多个处理器,所述存储介质与所述处理器耦合,所述处理器被配置为执行所述存储介质中存储的程序指令;所述程序指令运行时执行上述所述的wifi程序的模糊测试方法。
157.本技术实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
158.获取目标处理函数对应的内存地址,其中,所述目标处理函数为所述待测试wifi程序中用于处理目标类型数据帧以进行wifi通信的函数,所述目标处理函数中包含多个目标参数;
159.按照预置规则生成模拟参数值集合,其中,所述模拟参数值集合中包含每个所述目标参数对应的模拟参数值;
160.根据所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
161.根据所述目标处理函数对应的内存地址调用所述目标处理函数,以实现对所述目标处理函数进行模糊测试。
162.进一步的,所述待测试wifi程序中包含多个处理函数;在所述按照预置规则生成模拟参数值集合之前,包括:
163.通过目标hook框架确定每个所述处理函数对应的内存地址;
164.控制所述目标终端设备与其他终端设备进行wifi通信;
165.根据所述目标hook框架和每个所述处理函数对应的内存地址监控每个所述处理函数,以获得每个所述处理函数包含的各个目标参数对应的样本参数值;
166.将每个所述处理函数包含的各个目标参数对应的样本参数值存储至所述目标终端设备的本地存储空间中。
167.进一步的,所述通过目标hook框架确定每个所述处理函数对应的内存地址,包括:
168.控制所述待测试wifi程序运行;
169.获取每个所述处理函数对应的函数名;
170.通过所述目标hook框架获取所述待测试wifi程序对应的进程基址;
171.通过预置反编译器和每个所述处理函数对应的函数名获取每个所述处理函数对应的函数偏移值;
172.根据所述进程基址和每个所述处理函数对应的函数偏移值,确定每个所述处理函数对应的内存地址。
173.进一步的,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;所述按照预置规则生成模拟参数值集合,包括:
174.在所述本地存储空间中获取所述第一目标参数对应的样本参数值、所述第二目标参数对应的样本参数值和所述第四目标参数对应的样本参数值;
175.根据预置程序和所述第二目标参数对应的样本参数值生成所述第二目标参数对
应的测试参数值;
176.根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
177.根据所述第一目标参数对应的样本参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的样本参数值构建所述模拟参数值集合。
178.进一步的,所述目标处理函数包含第一目标参数、第二目标参数、第三目标参数和第四目标参数;所述按照预置规则生成模拟参数值集合,包括:
179.获取所述第一目标参数对应的预置参数值、所述第二目标参数对应的预置参数值和所述第四目标参数对应的预置参数值,其中,各个所述预置参数值为预先设定的;
180.根据预置程序和所述第二目标参数对应的预置参数值生成所述第二目标参数对应的测试参数值;
181.根据所述第二目标参数对应的测试参数值确定所述第三目标参数对应的测试参数值,其中,所述第三目标参数对应的测试参数值用于表明所述第二目标参数对应的测试参数值的真实字节长度;
182.根据所述第一目标参数对应的预置参数值、所述第二目标参数对应的测试参数值、所述第三目标参数对应的测试参数值和所述第四目标参数对应的预置参数值构建所述模拟参数值集合。
183.进一步的,所述根据所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中,包括:
184.根据目标hook框架和所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;
185.所述根据所述目标处理函数对应的内存地址调用所述目标处理函数,包括:
186.根据所述目标hook框架和所述目标处理函数对应的内存地址调用所述目标处理函数。
187.进一步的,在所述根据所述目标处理函数对应的内存地址调用所述目标处理函数之后,所述方法还包括:
188.通过目标hook框架对所述待测试wifi程序对应的进程进行监控;
189.当所述目标hook框架出现异常时,获取进程日志;
190.根据所述目标hook框架出现异常时的时刻值,在所述进程日志中获取所述待测试wifi程序对应的崩溃信息和崩溃上下文信息。
191.进一步的,所述第一目标参数具体为配置信息参数,所述第一目标参数用于存储当前网卡接口信息、本地配置信息和状态机信息,所述第二目标参数具体为数据帧载体参数,所述第二目标参数具体用于存储wifi数据帧,所述第三目标参数具体为数据帧长度参数,用于存储所述wifi数据帧对应的真实字节长度,所述第四目标参数具体为数据帧无线配置信息参数,所述第四目标参数用于存储所述wifi数据帧对应的速率信息、信道信息和信号强度信息。
192.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初
始化有如下方法步骤的程序代码:获取目标处理函数对应的内存地址,其中,所述目标处理函数为所述待测试wifi程序中用于处理目标类型数据帧以进行wifi通信的函数,所述目标处理函数中包含多个目标参数;按照预置规则生成模拟参数值集合,其中,所述模拟参数值集合中包含每个所述目标参数对应的模拟参数值;根据所述目标处理函数对应的内存地址将多个所述模拟参数值输入至所述目标处理函数中;根据所述目标处理函数对应的内存地址调用所述目标处理函数,以实现对所述目标处理函数进行模糊测试。
193.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
194.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
195.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
196.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
197.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
198.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
199.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
200.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的
包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
201.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
202.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献