-
摘要:
随着物联网 (IoT)技术的发展,嵌入式设备面临更加严峻的安全威胁,特别是嵌入式设备漏洞严重影响物联网产业的安全发展. 但受限于嵌入式设备自身硬件资源的限制,通用计算机系统常用的动态漏洞检测技术,例如模糊测试难以直接应用到嵌入式设备上. 因此,近年来嵌入式设备固件仿真技术成为学术界的研究热点,通过对嵌入式设备硬件依赖的仿真或替换,可以将模糊测试、符号执行等通用高效漏洞检测技术应用于嵌入式设备. 围绕最新嵌入式设备仿真技术,搜集整理近年来国际顶级学术论文,对相关研究成果进行归纳、总结. 基于采用的仿真技术和衍生关系进行分类介绍,然后对这些固件仿真器进行评估和细化比较,为使用者选择固件仿真器提供技术参考. 最后,根据当前嵌入式设备固件仿真器的现状,提出固件仿真器的挑战和机遇,对固件仿真器的研究进行了展望.
Abstract:With the development of IoT technology, embedded devices are facing more severe security threats, especially the serious impact of embedded device vulnerabilities on the security development of the IoT industry. However, due to the limitations of hardware resources of embedded devices, dynamic vulnerability detection technologies commonly used in general computer systems such as fuzz testing are difficult to apply directly to embedded devices. Therefore, in recent years, embedded device firmware emulation technology has become a research hotspot in academia. By emulating or replacing the hardware dependency of embedded devices, general and efficient vulnerability detection technologies such as fuzz testing and symbolic execution can be applied to embedded devices. We focus on the latest embedded device emulation technology, collect and summarize top international academic papers in recent years, summarize and classify relevant research results based on the emulation technology and derivative relationships used, and then evaluate and refine these firmware emulators for technical reference for users to choose firmware emulators. Finally, based on the current situation of embedded device firmware emulators, we put forward the challenges and opportunities of firmware emulators and prospects for future research on firmware emulators.
-
Keywords:
- embedded devices /
- firmware /
- dynamic analysis /
- firmware emulation /
- fuzz testing
-
天际线(Skyline)查询[1]作为多目标决策、兴趣点发现、推荐系统等领域关键问题的一种解决途径,在2001年被提出,自此受到研究学者的广泛关注与研究. 近些年,Skyline查询研究拓展到不确定数据Skyline查询[2]﹑数据流Skyline查询[3]﹑动态Skyline查询[4]﹑反Skyline查询[5] 、偏好Skyline查询等方面,其中偏好Skyline查询可以返回满足用户偏好需求的结果集. 针对因用户偏好不同导致属性的重要性不同问题,研究者们提出了新的支配关系与算法. 但已有研究主要集中在非道路网的用户偏好Skyline查询或者道路网单用户偏好Skyline查询方面,没有考虑道路网多用户偏好和权重的Top-k Skyline查询.
传统偏好Skyline查询算法主要存在3点局限性:1)偏好Skyline查询需要确定属性的重要程度,由于不同用户权重与偏好不同,因此不同属性的重要程度也不一致,而已有研究中较少有提出将用户偏好和权重综合考虑,得到对用户群统一的属性重要程度次序处理方法;2)传统偏好Skyline查询算法大多未考虑道路网环境下的距离维度,只考虑静态维度;3)传统偏好Skyline查询算法返回的结果集过大、无序,不能给用户提供有效的决策支持.
因此,针对道路网多用户偏好Top-k Skyline查询问题,本文提出满足多用户不同权重和偏好需求的查询方法.
本文的主要贡献有3点:
1)针对道路网存在大量数据点以及多查询用户场景,需要计算数据点到各个查询用户的道路网距离,从而产生的很大距离计算开销,为了提升距离计算效率,本文根据所提的Vor-R*-DHash索引结构以及数据点与查询用户群的空间位置关系,提前剪枝在距离维度被支配的大量数据点.
2)针对在道路网Top-k Skyline查询处理时未综合考虑多用户不同权重和偏好以及返回的结果集数量不可控的问题,本文首先提出整体属性权重值的概念,综合考虑用户权重和偏好;并进一步提出用户群权重偏好次序,并基于此次序提出一种新的支配,即K-准放松支配;接着根据偏好次序进行逐次放松支配,使返回结果集大小可控;同时当k值改变时,动态调整放松轮次即可获取候选结果集CS,而无需重新计算距离、偏好次序等,减少了查询计算开销.
3)针对Skyline查询返回结果集无序的问题,本文基于z-整体属性权重值,提出了选取Top-k个结果集的打分函数,对候选结果集CS打分排序,返回有序结果集.
1. 相关工作
Skyline查询主要分为集中式查询和分布式查询. 其中集中式查询主要分为使用索引结构和不使用索引结构. 使用索引结构的算法常用R-tree等索引结构,例如文献[6]利用最近邻(nearest neighbor,NN)算法和R-tree索引查找Skyline点,基于R-tree可以快速判断数据点是否为Skyline点,接着利用数据点进行子集合的划分,递归查找Skyline点. 不使用索引结构的Skyline查询算法主要有基于排序的SFS(sort-filter Skyline)算法[7]. 而Skyline查询在不断发展过程中又产生了许多变种问题,例如K-支配空间Skyline查询[8]﹑连续Skyline查询[9]﹑针对推荐系统的范围障碍空间连续Skyline查询[10]﹑概率Skyline查询[11]以及Top-k Skyline查询等[12-13].
在集中式计算环境下,文献[14]根据用户不同偏好提出了维度不确定的定义,根据维度特征划分数据,进行Skyline概率支配测试,同时利用阈值处理大规模数据集Skyline查询问题. 文献[15]提出一种高效偏序域Skyline查询处理方法,利用倒排索引进行Skyline查询. 在并行计算环境下,文献[16]提出了不完全数据集的偏好Skyline查询算法SPQ(Skyline preference query). 文献[17]根据用户的偏好,基于Voronoi图将数据对象划分到不同网格中,并行计算所有对象组合,获取动态Skyline结果. 文献[18]提出了MapReduce下Top-k Skyline偏好查询.
道路网Skyline查询近些年来也受到越来越多的关注. 道路网Skyline查询既考虑数据点的路网空间属性,又考虑非空间属性. 文献[19]提出了基于范围的移动对象连续Skyline查询处理方法,利用Voronoi图组织道路网中的数据点,通过所提的3种算法减少道路网产生的相交节点数和距离计算开销. 文献[20]提出了道路网环境下综合考虑空间距离和社交距离的Skyline组用户查询方法.
Top-k Skyline查询在多目标决策中往往更具优势,因为它可以控制返回的结果集数量. 文献[21]提出基于安全区域技术解决连续Top-k Skyline查询结果更新问题,提出了结合Top-k查询和Skyline查询的安全区域构建算法. 文献[22]提出了MapReduce环境下Top-k Skyline处理方法. 文献[23]将K-Skyband查询与Top-k Skyline查询结合处理大数据集的Top-k Skyline查询.
目前道路网环境下Top-k Skyline查询研究大多集中在单用户场景,较少考虑多用户偏好和权重不同的场景. 针对已有方法的不足,本文利用查询点与数据点的位置关系剪枝数据集,利用所提的K-准放松支配控制结果集数量;利用所提的打分函数返回有序结果集,在理论论证和分析基础上提出了道路网多用户偏好Top-k Skyline查询方法.
2. 主要定义
设道路网环境下数据集P={p1, p2,…, pn},查询用户群G={q1, q2,…, qm}.
定义1. 道路网距离支配. 给定查询用户群G、数据点p1、数据点p2,数据点之间的距离为Dist,当且仅当Dist(p1, qi)≤Dist(p2, qi),1≤i≤m;且存在Dist(p1,qi)<Dist(p2, qi),1≤i≤m,称p1道路网距离支配p2,记作p1►p2. 本文距离如不特殊说明,则为道路网距离.
定义2. 整体属性权重. 给定查询用户群G,用户权重w={w1,w2,…,wm},用户qi的查询关键字keys={C1,C2},C1为优先考虑的属性集合,C2为一般偏好的属性集合,任意维度dj的整体属性权重Wj如式(1):
Wj=m∑i=1si⋅wi, (1) 其中si代表属性dj对于用户qi的重要性得分.
在属性的重要性程度计分时,将属性偏好分为3类:优先考虑﹑一般偏好和未考虑. 不同类别分数不同,例如C1中的属性被赋予2分,C2中的属性被赋予1分,未考虑的属性被赋予0分.
定义3. 用户群权重偏好次序. 指针对查询用户群属性的有序集合 GP={d1, d2, …, di},其中di代表任意属性,GP中属性对用户群的重要性程度呈非递增排列. 用户群权重偏好次序综合考虑用户的偏好和权重.
定义4. K-准放松支配(KPRD). 设P为数据集,数据维度空间为D,dj为任意维度,总维度数为r,θ=(θ1,θ2,…,θK)是D上K个维度的无差异阈值. 数据点pi,pt∈P,pi K-准放松支配pt,记作piϾpt,当且仅当:
{|{j|pi[dj]−pt[dj]>θj}|=0,|{j|pt[dj]−pi[dj]>0}|<|{j|pi[dj]−pt[dj]>0}|, (2) 其中1≤j≤K.
定义5. 道路网多用户偏好Top-k Skyline查询. 给定道路网路段集R、查询用户群G、数据集P、用户的查询关键字集合keys和用户权重集合w,道路网多用户偏好Top-k Skyline查询返回P的一个子集. 该子集中数据点在道路网的距离维度和静态维度都不能被P中任意其他数据点支配,并且是根据用户群偏好和权重排序的Top-k个数据点. 本文将道路网多用户偏好Top-k Skyline查询方法记作MUP-TKS.
3. 道路网多用户偏好Top-k Skyline查询
本文提出的道路网多用户偏好Top-k Skyline查询方法主要分为3个部分:距离较优集选取﹑K-准放松支配和Top-k个数据点选取.
3.1 道路网距离较优集选取方法
定义6. Mindist距离[24]. r维欧氏空间中,点p到同一空间内某矩形N的最小距离为Mindist(N, p).
定义7.Edist距离. 设查询用户群的最小外接矩形(minimum bounding rectangle,MBR)为Q,数据点p的MBR为N,则min{Mindist(p, Q)}为(Q, N)最小欧氏距离,记作Edistmin;max{Mindist(p, Q)}为(Q, N)最大欧氏距离,记作Edistmax.
定义8.Ndist距离. 设查询用户群的MBR为Q,数据点p的MBR为N,有min{Ndist(p, Q)}为(Q, N)最小网络距离,记作Ndistmin;max{Ndist(p, Q)}为(Q, N)最大网络距离,记作Ndistmax,其中p为N中的任意数据点,Ndist(p,Q)为p到Q的网络距离.
定理1. 设查询用户群的MBR为Q,道路网中数据点构成的2个中间节点分别为N1,N2,若DE1=Edistmin(Q, N2),DE2=Edistmax(Q, N1),DN1=Ndistmax(Q, N1),并且DE1>DE2,DE1>DN1,则N1►N2,且N2中任意数据点都被N1中数据点距离支配.
证明. 假设DN2=Ndistmin(Q, N2),因为欧氏距离值一定小于等于道路网距离值,所以当DE1>DE2且DE1>DN1时一定有DN2≥DE1,可得DN2>DN1,即N2中数据点到Q的最小网络距离大于N1中数据点到Q的最大网络距离,进而可得N2中任意数据点到Q的网络距离都大于N1中任意数据点到Q的网络距离. 因此N1►N2,且N2中任意数据点被N1中任意数据点道路网距离支配.证毕.
剪枝规则1. 设数据点构成的MBR分别为N1,N2,查询用户群的MBR为Q,如果满足:Edistmax(Q, N1)≤Edistmin(Q, N2),并且Ndistmax(Q, N1)<Edistmin(Q, N2),则节点N2可被剪枝.
定义9. 道路网最大距离的最小值. 给定数据点p1,p2,查询用户群G,数据点p到查询点q的道路网距离为Ndist(p, q). 若有DN1=max{Ndist(p1, qi)},DN2=max{Ndist(p2, qi)}(1≤i≤m),并且DN1<DN2,则当前道路网最大距离的最小值为DN1,记作DN_MaxMin.对应的数据点为p1.
定理2. 若节点N的Edistmin(Q, N)>DN_MaxMin,则节点N可被剪枝.
证明. 因为Edistmin(Q, N)>max{Ndist(p, qi)}(1≤i≤m),所以Ndistmin(Q, N)>max{Ndist(p, qi)},即p►N,且N中数据点也被p距离支配.证毕.
剪枝规则2. 若Edistmin(Q, N)≥DN_MaxMin,则节点N被支配,即N和N中数据点{p1, p2,···, pi}被剪枝.
如图1所示,数据点p1,p2到查询用户群{q1, q2, q3}的最大网络距离分别为DN1,DN2,有DN1>DN2,则DN_MaxMin=DN2. 数据点{p3,p4,p5,p6,p7,p8}构成的MBR为N1;若Edistmin(Q, N1)>DN_MaxMin,可得N1中数据点到各查询用户的网络距离大于DN_MaxMin,因为Edistmin(Q, N1)>DN_MaxMin,且有min{Ndist(p2, qi)}≥Edistmin(Q,N1)(1≤i≤3),所以p2►N1,N1可被剪枝.
定理3. 设DE为数据点pi到查询用户qj的欧氏距离,若min{DE(pi, qj)}>DN_MaxMin(1≤j≤m),则pi被剪枝.
证明. 假设p1为DN_MaxMin对应的数据点,若min{DE(pi,qj)}>DN_MaxMin,则有Ndist(p,qj)>DN_MaxMin(1≤j≤m),即数据点p1►p,p可被剪枝.证毕.
剪枝规则3. 假设数据点p1为DN_MaxMin对应的数据点,若存在DN_MaxMin<min{DE(pi, qj)}(1≤j≤m),则p1►pi,可将pi从候选集中删除,其中pi为任意不为p1的数据点.
为了减少计算,在剪枝前基于路网数据点的网络Voronoi图构建Vor-R*-DHash索引结构,如图2所示.
Vor-R*-DHash索引结构构造过程有3步:
1)构建路网所有数据点的网络Voronoi图.
2)创建R*-tree.从R*-tree的根部开始,从上至下、从左至右给每个节点编号,从0开始编号.
3)构建2级HashMap结构,第1级HashMap为first_hash、key为R*-tree中每个节点编号;第2级HashMap为sec_hash、key为后续剪枝处理需要的值,包括isNode(非数据点的节点)、MinE(节点到Q的最小欧氏距离值)、MaxE(节点到Q的最大欧氏距离值 )、MinN(节点到Q的最小网络距离值)、MaxN(节点到Q的最大网络距离值)、{DN1, DN2,…, DNi}(数据点到各查询用户的网络距离)、{DE1, DE2,…, DEi}(数据点到各查询用户的欧氏距离).
2级key对应的value值初始都为空,若数据点根据剪枝规则提前被剪枝,则这些值无需计算.DEi,DNi的值也是后续需要使用才被计算,并存入sec_hash.
基于剪枝规则1~3和Vor-R*-DHash索引结构,进一步给出距离较优集选取方法,如算法1所示.
算法1. 距离较优集选取方法 G_DBC.
输入:查询用户群G,道路网路段集R,数据集P;
输出:距离维度不被支配的距离较优集DBC.
① 以P中数据点、道路网路段集R构建 Vor- R*-DHash索引;
② 构建查询用户群的最小外包矩形Q;
③ 初始化DBC←∅;
④ 根据索引找到距离查询用户最近的点point;
⑤ 将point加入DBC中;
⑥ 计算数据点到各查询用户的网络距离 Ndist(p, qi)、欧氏距离DE(p, qi);
⑦ 将数据点网络距离、欧氏距离存入sec_hash;
⑧ 找到数据点到查询用户的网络距离最大值 的最小值;
⑨ DN_MaxMin←min{Ndist(p,qi)}; /*将最小值 赋给DN_MaxMin*/
⑩ 将数据点父节点Ni加入队列queue中;
⑪ 计算Ni到Q的最小、最大欧氏距离和最 小、 最大网络距离,存至sec_hash;
⑫ N1←min{MaxN}; /*将当前支配能力最强的 节点赋值给N1*/
⑬ for node in queue do
⑭ if node的孩子节点都被访问过 then
⑮ 将node的父节点加入queue中;/*向上 一层访问*/
⑯ end if
⑰ if node的孩子节点N为非叶子节点 then
⑱ 计算N到Q的欧氏距离DE1;
⑲ if DE1 > DN_MaxMin then
⑳ Cut N;/*将N剪枝,剪枝规则2*/
㉑ else if MaxE(N1) < MinE(N) 且 MaxN(N1)<MinE(N) then
㉒ Cut N;/*剪枝规则1*/
㉓ else
㉔ 将N加入队列queue;
㉕ 计算N到Q的最小、最大网络距离, 并 存至sec_hash;
㉖ 更新N1←min{MaxN};/*当前支配能力强 的节点赋给N1*/
㉗ end if
㉘ end if
㉙ if node的孩子节点N为叶子节点 then
㉚ 计算数据点到各查询用户欧氏距离 DE(p,qi);
㉛ if min{DE(p,qi)} > DN_MaxMin then
㉜ Cut N;/*剪枝规则3*/
㉝ else
㉞ 计算N到各查询用户网络距离DN;
㉟ if min{DN} > DN_MaxMin then
㊱ Cut N;
㊲ else
㊳ 将N与DBC中数据点支配比较;
㊴ if N被支配 then
㊵ Delete N;
㊶ else
㊷ 将N加入DBC中;
㊸ 更新DN_MaxMin←min{DN};
㊹ end if
㊺ end if
㊻ end if
㊼ end if
㊽ end for
㊾ return DBC.
算法1首先构建Vor-R*-DHash索引和查询用户群最小外接矩形Q,可快速得到距离查询点最近的数据点point,计算并保存sec_hash所需数据. 将point加入距离较优集DBC,并初始化DN_MaxMin. 接着将point父节点加入队列queue中,计算并保存sec_hash所需数据,并初始化N1. 每次取出队头节点处理,依据剪枝规则1~3进行节点的剪枝或者将节点加入DBC,并判断是否需要更新N1,DN_MaxMin等值,直至队列为空,循环结束. 最后返回距离较优集DBC.
3.2 数据集的放松支配过程
3.2.1 获取用户群权重偏好次序
首先初始化整体属性权重集合.W={W1,W2,…,Wi}={0,0,…,0};接着计算每个属性的整体属性权重值得到W;最后对整体属性权重值不为0的属性降序排列,得到属性的重要性次序,即用户群权重偏好次序.
在获取用户群权重偏好次序时,为了减小计算开销,利用HMap1,HMap2分别保存优先考虑的属性和一般偏好的属性. 当用户发起查询时,将C1中属性作为键,对应的用户权重作为值保存到HMap1;将C2中属性作为键,对应的用户权重作为值保存到HMap2.
进一步给出获取用户群权重偏好次序算法CDW,如算法2所示.
算法2. 获取用户群权重偏好次序算法 CDW.
输入:用户群G,用户查询关键字keys,用户权重w,维度空间D;
输出:用户群权重偏好次序GP.
① 初始化W为0; /*大小为数据集维度数*/
② 根据keys,w创建HMap1,HMap2;
③ for dj ∈D do
④ 基于HMap1、HMap2和式(1)得到Wj ;
⑤ end for
⑥ 根据W降序得到用户群权重偏好次序GP;
⑦ return GP. /*返回用户群权重偏好次序*/
3.2.2 基于用户群权重偏好次序的K-准放松支配
获取用户群偏好次序后,基于该次序进行放松支配处理. 本文中K为整体属性权重值不为0的维度数. 放松支配过程的处理对象为DBC与静态Skyline集取并集后的集合S. 经K-准放松支配后得到数量可控的候选结果集CS.
定理4. 任意2个数据点pi,pj∈P,若第i(i>0)轮在K个维度上piϾpj,则数据点pi必定在前K–i维支配数据点pj.
证明. 若在第i轮piϾpj,可知该轮的无差异阈值为(0,0,…,0,θK−i+1,…,θK),进而可得前K–i维使用的无差异阈值为(0,0,…,0),所以前K–i维为严格支配比较,即数据点pi必定在前K–i维支配数据点pj.证毕.
定理5. 数据集P经过第i(i>1)轮放松支配后所得结果集Si一定是第i–1轮放松支配后所得结果集Si−1的子集.
证明. 设第i轮放松的维度为第(K–i+1)~K维,第i–1轮放松的维度为第(K–i+2)~K维,其余维度使用严格支配. 可知第i轮的无差异阈值为(0,0,…,0,θK−i+1,θK−i+2,…,θK),第i–1轮的无差异阈值为(0,0,…,0,θK−i+2,…,θK),进而可知第i–1轮在前K–i+1个维度为严格支配比较,即在前K–i+1个维度的无差异阈值为(0,0,…,0). 第i轮不同于第i–1轮之处在于对第K–i+1维进行了放松支配,即在前K–i+1个维度无差异阈值为(0,0,…,0,θK−i+1),所以有Si⊆Si−1.证毕.
由定理4、定理5可直接得出定理6.
定理6. 给定数据集S,结果集数量随着每一轮放松而呈单调非递增趋势,即
|KPRD(i−1,D,S)|⩽ (3) 为使返回的结果集更符合用户群偏好,并保证数量可控,基于定理4~6进行逐次放松支配. 逐次放松支配过程中,θ是D上K个维度的无差异阈值,θ =(θ1, θ2, …, θK). 假定当前放松轮次为第i轮(1≤i≤K),无差异阈值θ =(0,0,…,0,θK−i+1,…,θK). 位于di前面的维度重要性都要高于di,因此该轮放松支配维度d1~di−1都使用严格支配比较. 放松支配从对用户群而言最不重要的属性开始,并预先将数据点按照用户群权重偏好次序非递增排序,距离维度值用数据点到查询用户群网络距离的最大值表示.
基于以上讨论,进一步给出基于用户群权重偏好次序的K-准放松支配算法KPRD,如算法3所示.
算法3. 基于用户群权重偏好次序的K-准放松支配算法KPRD.
输入:用户群G,无差异阈值θ,并集S,数据维度空间D,k值,用户查询关键字keys,用户权重w;
输出:候选结果集CS.
① GP←call CDW(G, keys, w, D);/*调用算法2 获取用户群权重偏好次序GP*/
② K←|GP|; /*整体属性权重值大于0的 维度数*/
③ 根据GP调整S中数据点;
④ 初始化CurS←S; /*CurS为每轮放松支配后 的结果集*/
⑤ 初始化oldCount←|S|; /*保存上一轮结果集 个数*/
⑥ 初始化curCount ←|CurS|;/*保存本轮结果集 个数*/
⑦ for j = K to 1 do /*进行最多K轮放松支配*/
⑧ for every pi,pj ∈ CurS do
⑨ if piϾpj then
⑩ 将pj从CurS删除;
⑪ curCount = curCount −1;
⑫ end if
⑬ end for
⑭ if oldCount ≥ k 且 curCount < k then
⑮ CS←S;
⑯ return CS;/*返回上一轮的结果集*/
⑰ else
⑱ 将CurS结果集保存至文件;
⑲ S←CurS;/*更新S*/
⑳ oldCount←|S|;/*更新oldCount*/
㉑ end if
㉒ end for
㉓ CS←CurS;
㉔ return CS.
3.3 Top-k个数据点选取方法
通过放松支配处理后可有效控制返回用户群的结果集大小,本节进一步给出Top-k个数据点选取策略,使返回结果集有序. 利用z-整体属性权重值的打分函数选取Top-k个数据点,处理对象为候选结果集CS.
定义10. 单调打分函数F[25]. 数据集中数据点作为输入域将数据点映射到实数范围.F由r个单调函数构成,F={f1, f2, …, fr}. 对于数据集中任意数据点,有F = \displaystyle\sum\limits_{j = 1}^r {{f_j}(p[{d_j}])},其中fj(p[dj])为数据点在dj维度的单调函数.
定理7. 假设数据集P的单调打分函数为F,若数据集中任意一个元组有最高的分数,那么它一定是Skyline点.
证明. 以反证法进行证明. 假设有p1,p2∈P,p1的得分F(p1)为数据集的最高得分,F(p1)>F(p2),p1不是Skyline点,p2支配p1,p1[dj]≤p2[dj](1≤j≤r),则可得\displaystyle\sum\limits_{j = 1}^r {{f_j}({p_1}[{d_j}]) \leqslant \displaystyle\sum\limits_{j = 1}^r {{f_j}({p_2}[{d_j}])} },即F(p1)≤F(p2),与假设矛盾.证毕.
定理8. 数据集P根据任意单调打分函数所得数据点顺序是Skyline支配的拓扑顺序.
证明. 以反证法进行证明. 假设存在2个数据点p1,p2∈P,单调打分函数为F,p1支配p2,F(p1)<F(p2),根据定理7可知,p1支配p2,则有F(p1)≥F(p2),与假设矛盾. 所以如果F(p2)>F(p1),可能有p2支配p1,但可以确定p1不可能支配p2. 如果F(p1)=F(p2),则p1支配p2或p2支配p1(这两者是等价的,会根据属性的映射关系排序),或者p1和p2之间不具备支配关系. 因此依据打分函数F所得数据点顺序是按照Skyline支配关系的一个拓扑顺序.证毕.
定义11. 线性打分函数[25]. 给定线性打分函数L,一般化形式为L(p) = \displaystyle\sum\limits_{j = 1}^r {{\omega _j} \cdot p[{d_j}]},其中ωj为实常数,p[dj]为数据点在dj维度的取值.
定义12. z-整体属性权重值. 给定数据集P,数据点 {p_i}\in P,pi在dj维度的z-整体属性权重值为
{\varphi }_{i,j}=\frac{({V}_{i,j}-\mu )}{\sigma }\cdot {W}_{j}\cdot {\zeta }_{j}\text{,} (4) 其中,\dfrac{{({V_{i,j}} - \mu )}}{\sigma }为数据点pi在维度dj的z值,Wj为dj的整体属性权重值,ζj为dj的维度优劣值,ζj=1或ζj=−1. 由定义10~12可知,fj(p[dj])=φi,j=ωjz,ωj=Wjζj.
定理9. 数据点任意维度的fj(p[dj])是单调的.
证明. 因为ωj=Wjζj,在打分阶段Wj为实常数,所以可得ωj为实常数,且随着数据点维度值变大,它的z值也变大,因此数据点的任意维度fj(p[dj])是单调的.证毕.
定义13. 基于z-整体属性权重值的打分函数. 数据点pi各维度z-整体属性值之和为它的得分,记作F(pi):
F({p_i}) = \sum\limits_{j = 1}^r {{\varphi _{i,j}}} . (5) 定理10. F(pi)是单调打分函数.
证明. 因为有F({p_i}) = \displaystyle\sum\limits_{j = 1}^r {{f_j}(p[{d_j}])},根据定理9可知数据点的任意维度fj(p[dj]) 随着维度值变大单调递增,它们具备相同的单调性,因此F(pi)也是单调的.证毕.
进一步给出Top-k个数据点选取方法,如算法4所示.
算法4.Top-k个数据点选取方法TK_DC.
输入:候选结果集CS,整体属性权重集合W,维度优劣集合ζ;
输出:Top-k Skyline结果集.
① for pi∈CS do
② 计算数据点的z-整体属性权重值;/*根据 式(4)*/
③ 计算数据点得分;/*根据式(5) */
④ end for
⑤ 根据F(pi)降序排序;
⑥ return Top-k个数据点.
算法4主要对经过算法3处理后的候选结果集CS打分,并对行②③计算CS中各个数据点的得分,基于行⑤⑥数据点的得分排序,输出Top-k Skyline结果集给用户群.
综合距离较优集选取﹑K-准放松支配和Top-k个数据点选取的处理过程,进一步给出算法5 MUP-TKS的算法.
算法5. 道路网多用户偏好Top-k Skyline查询算法MUP-TKS.
输入:数据集P,道路网路段集R,用户群G,用户查询关键字keys,用户权重w,无差异阈值θ,k,维度优劣集合ζ;
输出:Top-k Skyline结果集.
① 预先计算保存数据集的静态Skyline 集;
② 距离较优集选取方法G_DBC;/*调用算法1*/
③ 对距离较优集与静态Skyline集求并集S;
④ K-准放松支配算法KPRD; /*调用算法 3*/
⑤ Top-k 个数据点选取方法TK_DC. /*调用算 法4*/
4. 实验比较与分析
本节主要对MUP-TKS进行实验以及性能评估. 实验对比算法为道路网单用户偏好Skyline算法UP-BPA[26]、K支配空间偏好Skyline算法KSJQ[23]以及基于时间道路网多用户偏好Skyline算法DSAS[27].UP-BPA算法适用于道路网单用户,为了更好地与本文所提MUP-TKS进行对比,将其扩展,对查询用户群的每个用户分别运行该算法;再对子结果集取并集,得到候选结果集CS;最后对候选结果集基于z-值的打分函数打分,得到Top-k个数据点,扩展后的算法称为EUP-BPA.将KSJQ算法扩展,对每个用户单独执行该算法,用户偏好对应它的K个子空间;对每个用户的结果集取并集后得到候选结果集;对候选结果集CS基于z-值的打分函数打分,得到Top-k个Skyline结果集,扩展后的算法称为EKSJQ.将DSAS算法扩展,对满足不同用户需求的数据点基于z-值打分函数打分,按照数据点得分从高至低返回Top-k个Skyline结果集,扩展后的算法称为EDSAS.
4.1 数据集及实验环境设置
实验使用真实道路网数据集. 道路网数据集
1 是北美2.5×107 km2范围内的路段信息,它包含175813个节点和179179条边. 兴趣点数据集2 来自北美酒店及登记信息. 查询用户采用随机生成的方式. 本文使用Vor-R*-DHash索引结构组织数据集. 实验参数取值范围如表1所示,每个用户最大关注维度为4.每个实验采取单一变量原则,其余变量为默认值,实验结果取30次实验运行的平均值.表 1 实验参数设置Table 1. Experimental Parameter Setting参数 取值范围 用户数量 5,10,15,20,25,30,35 数据集规模 1×104,2×104,3×104,4×104,5×104 数据维度 5,7,9,11,13,15,17 无差异阈值(标准差) 0.1倍,0.5倍,1倍,2倍,10倍 获取数据点数量k 2,4,6,8,10 注:加粗数值表示参数默认取值. 实验环境为:Windows 10(64b),CoreTM i6-5200U CPU @2.20 GHz 2.19 GHz处理器,12 GB运行内存. 在IntelliJ IDEA开发平台上使用Java实现本文所提的算法MUP-TKS和对比算法EUP-BPA,EKSJQ,EDSAS.
4.2 算法对比实验
1)用户数量对算法性能的影响
为了分析用户数量对算法性能的影响,本实验对不同用户数量下的MUP-TKS,EKSJQ,EDSAS,EUP-BPA算法进行测试,观察算法在不同用户数量下的CPU运行时间、候选结果集CS数量的变化情况.
图3展示了4种算法在不同用户数量下CPU运行时间变化情况.由图3可知,随着用户数量的增加,4种算法的CPU运行时间都在增加. 因为用户数量增加导致不同用户的偏好情况增加,从而需要更多时间处理用户偏好. MUP-TKS的CPU运行时间增长趋势没有其他3种算法的增长趋势大,主要原因是MUP-TKS将多用户的偏好转换成用户群权重偏好次序,对数据集按照该次序预排序,再进行K-准放松支配,使用户数量增加对CPU运行时间的影响减小.
图4展示了4种算法随着用户数量的变化,候选结果集CS数量的变化情况. 由图4可知随着用户数量的增加,CS的数量变大. 但MUP-TKS,EKSJQ,EDSAS算法的变化趋势远没有EUP-BPA算法的变化趋势大,主要因为EUP-BPA算法需要对每个用户进行偏好Skyline查询,再合并各用户的偏好Skyline结果集.
2)数据规模对算法性能的影响
为了分析数据规模对MUP-TKS性能的影响,本实验对不同数据规模下的MUP-TKS,EKSJQ,EDSAS,EUP-BPA算法进行测试,观察4种算法在不同数据规模下CPU运行时间、CS数量的对比情况.
由图5可知,随着数据集规模变大,CPU运行时间不断增加,因为当数据集规模变大时,需要比较的元组数量增加. 而MUP-TKS的增长趋势比其他3种算法小,主要因为MUP-TKS利用剪枝策略和Vor-R*-DHash索引提前剪枝大量不可能成为Skyline的数据点,减少了元组比较次数.
3)k值对算法性能的影响
图6展示了4种算法随着k值变化CPU运行时间变化的情况. 随着k值变化,MUP-TKS的CPU运行时间没有太大变化,因为MUP-TKS在每一轮放松支配后会保存结果集,当k值变化时,可直接找到对应符合大小要求轮次的CS打分,即可得到Top-k Skyline结果集,该过程时间消耗很小. 而EKSJQ,EUP-BPA算法都需要重新计算,时间消耗较大.
图7展示了4种算法随着k值变化元组比较次数的变化情况. 可以发现MUP-TKS随着k值增大,元组比较次数减少,因为当k值增大时,放松支配的轮次减少. 而随着k值增大,EKSJQ,EUP-BPA算法的元组比较次数增多,因为需要进行更多的支配比较找到Top-k个数据点. 随着k值增大,EDSAS算法的元组比较次数基本没有变化.
4)无差异阈值对算法性能的影响
本实验分析无差异阈值对MUP-TKS性能的影响. 图8展示了MUP-TKS在不同无差异阈值下CPU运行时间的变化情况. 由图8可知,若只考虑第1轮放松时间,无差异阈值变化对第1轮放松的CPU响应时间影响不大,因为不同无差异阈值的初始数据集大小都是相同的,处理相同数据集规模的时间差异不大. 而算法总运行时间随着阈值增大而减小,因为无差异阈值增大后,放松支配时会删减更多被支配的元组.
5. 总 结
本文针对现实生活中道路网多用户场景的偏好Top-k Skyline 查询问题,进行深入分析与研究. 作为道路网上单用户偏好Skyline查询问题的补充,提出了一种基于道路网环境下多用户偏好Top-k Skyline查询方法. 该方法利用剪枝规则和索引减少了距离计算开销,并利用用户群权重偏好次序进行放松支配,使结果集可控. 实验结果表明,本文方法能有效解决道路网多用户偏好查询问题,返回的结果集可以满足多用户偏好与权重需求,可以提供有效参考价值. 下一步研究重点主要集中在对多查询用户移动情况下偏好 Top-k Skyline 查询问题的处理.
作者贡献声明:李松提出了方法思路和技术方案;宾婷亮和郝晓红负责算法优化、完成部分实验并撰写论文;张丽平完成部分实验;郝忠孝提出指导意见并修改论文.
-
系统
类型功能 代码
量级内存
管理安全
机制固件
格式文件
系统可直接
托管第1类 丰富 大 健全 有 标准 有 是 第2类 较简单 小 不健全 无 自定义 有 否 第3类 简单 小 不健全 无 自定义 无 否 表 2 常见的固件仿真器类别与特性
Table 2 Classification and Feature of Common Firmware Emulators
分类 工具名称 年份 主要特性 基础处理架构仿真框架 Simics[44] 2002 指令级处理器仿真器 QEMU[17] 2005 基本块级全系统仿真器 Unicorn[19] 2015 基本块级处理器仿真器 Ghidra Emulator[19] 2019 子指令级处理器仿真器 基于硬件依赖替换的仿真器 HALucinator[34] 2020 拦截硬件抽象层调用并替换 PMCU[47] 2021 插桩替换POSIX硬件依赖层代码 基于外设建模的
固件仿真器硬件在环 AVATAR[21] 2014 将仿真器与硬件结合的框架 PROSPECT[22] 2014 将嵌入式设备总线连接到主机 SURROGATES[23] 2015 使用低延迟的FPGA桥接器负责交互 AVATAR2[35] 2018 允许各种工具交互的动态多目标编排框架 Muench[49] 2018 结合PANDA和AVATAR2实现各种跟踪技术 Inception[48] 2018 将基于KLEE的高级命令转换为低级的JTAG信号 基于符号执行 Laelaps[36] 2020 基于符合执行在环的外设仿真方案 µEmu[27] 2021 基于符合执行生成合法路径约束的外设仿真模型 Jetset[28] 2021 利用符号执行引导程序生成期望路径约束的外设仿真方案 基于人为假设的 P2IM[26] 2020 使用人为假设的寄存器访问模式的外设仿真方案 DICE[30] 2021 基于DMA访问模式假设的DMA仿真器 基于模糊测试的 Ember-IO[33] 2023 利用模糊测试重放来确定外设反馈 Fuzzware[32] 2022 利用符号执行生成约束结合模糊测试生成外设反馈 基于硬件手册的 SEmu[31] 2022 基于自然语言处理将硬件描述自动转化为了外设仿真模型 表 3 固件仿真器评估
Table 3 Firmware emulator evaluation
固件仿真器 硬件仿真方案 执行保真度 数据内存保真度 Simics[44] 仿真 指令级 寄存器级 QEMU[17] 仿真 基本块级 内存级 Ghidra Emulator[20] 仿真 指令级 内存级 AVATAR[21] 传递到真实硬件 基本块级 内存级 PROSPECT[22] 传递到真实硬件和人工仿真 周期级 内存级 SURROGATES[23] 传递到真实硬件和人工仿真 周期级 内存级 Inception[48] 传递到真实硬件和人工 周期级 内存级 P2IM[26] 通用仿真模型 基本块级 远低于黑盒级 µEmu[27] 通用仿真模型 基本块级 低于黑盒级 Jetset[28] 通用仿真模型 基本块级 低于黑盒级 Fuzzware[32] 模糊测试反馈的通用仿真模型 基本块级 远低于黑盒级 Ember-IO[33] 模糊测测试反馈通用仿真模型 基本块级 远低于黑盒级 HALucinator[34] 功能替换 基本块级 黑盒级与内存级之间 PMCU[47] 接口转发替换 模块级 黑盒级 SEmu[31] 基于硬件手册的内存逻辑 模块级 内存级 Pretender[25] 基于硬件记录 基本块 黑盒级与内存级之间 -
[1] Wetzels. The RTOS exploit mitigation blues[J/OL]. [2017-09-19].https://hardwear.io/document/rtos-exploit-mitigation-blues-hardwear-io.pdf
[2] 绿盟科技. 洞见RSA 2023: 僵尸网络威胁态势观察[EB/OL]. (2023-05-10). http: //blog.nsfocus.net/rsa-2023insight2/ NSFoCus. Insight RSA 2023: Botnet threat situation observation[EB/OL]. (2023-05-10). http://blog.nsfocus.net/rsa-2023insight2/
[3] Artenstein. Broadpwn: Remotely compromising Android and iOS via a bug in the broadcom WI-FI chipset[EB/OL]. [2023-05-10]. http://blog.exodusintel.com/2017/07/26/broadpwn
[4] 于颖超,陈左宁,甘水滔,等. 嵌入式设备固件安全分析技术研究[J]. 计算机学报,2021,44(5):859−881 doi: 10.11897/SP.J.1016.2021.00859 Yu Yingchao, Chen Zuoning, Gan Shuitao, et al. Research on the technologies of analysis technologies on the embedded device firmware[J]. Chinese Journal of Computers, 2021, 44(5): 859−881 (in Chinese) doi: 10.11897/SP.J.1016.2021.00859
[5] Costin A, Zaddach J, Francillon A, et al. A large-scale analysis of the security of embedded firmwares[C] //Proc of the 23rd USENIX Security Symp. San Diego, CA: USENIX Association, 2014: 95−110
[6] Cheng Kai, Li Qiang, Wang Lei, et al. DTaint: Detecting the taint-style vulnerability in embedded device firmware[C] //Proc of the 48th Annual IEEE/IFIP Int Conf on Dependable Systems and Networks (DSN). Piscataway, NJ: IEEE, 2018: 430−441
[7] David Y, Partush N, Yahav E. FirmUp: Precise static detection of common vulnerabilities in firmware[C] //Proc of the 23rd Int Conf on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2018). New York: ACM, 2018: 392−404
[8] Ying Huan, Zhang Yanmian, Han Lifang, et al. Detecting buffer-overflow vulnerabilities in smart grid devices via automatic static analysis[C] //Proc of 2019 IEEE 3rd Information Technology, Networking, Electronic and Automation Control Conf (ITNEC). Piscataway, NJ: IEEE, 2019: 813−817
[9] Chipounov V, Kuznetsov V, Candea G. S2E: A platform for in-vivo multi-path analysis of software systems[C] //Proc of 2011 ACM Sigplan Notices. New York: ACM, 2011, 46(3), 265−278
[10] Kruegel C. Full system emulation: Achieving successful automated dynamic analysis of evasive malware[C] //Proc of BlackHat USA Security Conf. Las Vegas: blackhat 2014: 1−7
[11] Phillips R, Montalvo B. Using emulation to debug control logic code[C] //Proc of the 2010 Winter Simulation Conf. Piscataway, NJ: IEEE, 2010: 1673−1677
[12] Tanasache F D, Sorella M, Bonomi S, et al. Building an emulation environment for cyber security analyses of complex networked systems[C] //Proc of the 20th Int Conf on Distributed Computing and Networking. New York: ACM, 2019: 203−212
[13] Jung M J, Ballo T. STM-based Introspection[R]. Albuquerque, NM: Sandia National Lab, 2017
[14] Fasano A, Ballo T, Muench M, et al. Sok: Enabling security analyses of embedded systems via rehosting[C] //Proc of the 2021 ACM Asia Conf on Computer and Communications Security. New York: ACM, 2021: 687−701
[15] Wright C, Moeglein W A, Bagchi S, et al. Challenges in firmware re-hosting, emulation, and analysis[J]. ACM Computing Surveys, 2021, 54(1): 1−36
[16] Feng Xiaotao, Zhu Xiaogang, Han Qinglong, et al. Detecting vulnerability on IoT device firmware: A survey[J]. IEEE/CAA Journal of Automatica Sinica, 2022, 10(1): 25−41
[17] Bellard F. QEMU, a fast and portable dynamic translator[C] //Proc of the FREENIX Track: 2005 USENIX Annual Technical Conf. Berkeley, CA: USENIX, 2005: 41−46
[18] Chen D D, Woo M, Brumley D, et al. Towards automated dynamic analysis for Linux-based embedded firmware[C] //Proc of 2016 Network and Distributed System Security Symp. CA: ISOC 2016: 1.1−8.1
[19] Unicorn Engine[CP/OL]. 2017 [2023−08−18]https://www:unicornengine:org/
[20] NSA’s Research Directorat Ghidra[EB/OL]. [2022-11-19].https://ghidra-sre.org/
[21] Zaddach J, Bruno L, Francillon A, et al. AVATAR: A framework to support dynamic security analysis of embedded systems’ firmwares[C] //Proc of the 21st Annual Network and Distributed System Security Symp (NDSS 2014). CA: ISOC, 2014: 1−16
[22] Kammerstetter M, Platzer C, Kastner W. PROSPECT: peripheral proxying supported embedded code testing[C]//Proc of the 9th ACM Symp on Information, Computer and Communications Security. New York: ACM, 2014: 329−340
[23] Koscher K, Kohno T, Molnar D. SURROGATES: Enabling near-real-time dynamic analyses of embedded systems[C] //Proc of the 9th USENIX Workshop on Offensive Technologies. Berkeley, CA: USENIX, 2015: 1−10
[24] Dolan-Gavitt B, Hodosh J, Hulin P, et al. Repeatable reverse engineering with PANDA[C] //Proc of the 5th Program Protection and Reverse Engineering Workshop. New York: ACM, 2015: 1−11
[25] Gustafson E, Muench M, Spensky C, et al. Toward the analysis of embedded firmware through automated re-hosting[C] //Proc of the 22nd Int Symp on Research in Attacks, Intrusions and Defenses. Berkeley, CA: USENIX, 2019: 135−150
[26] Feng Bo, Mera A, Lu Long. P2IM: Scalable and hardware-independent firmware testing via automatic peripheral interface modeling[C] //Proc of the 29th USENIX Security Symp (USENIX Security’20). Berkeley, CA: USENIX, 2020: 1237−1254
[27] Zhou Wei, Guan Le, Liu Peng, et al. Automatic firmware emulation through invalidity-guided knowledge inference[C] //Proc of the 30th USENIX Security Symp (USENIX Security’21). Berkeley, CA: USENIX, 2021: 2007−2024
[28] Johnson E, Bland M, Zhu Yifei, et al. Jetset: Targeted firmware rehosting for embedded systems[C] //Proc of the 30th USENIX Security Symp (USENIX Security’21). Berkeley, CA: USENIX, 2021: 321−338
[29] Shoshitaishvili Y, Wang R, Salls C, et al. Sok: (state of) the art of war: Offensive techniques in binary analysis[C] //Proc of the 2016 IEEE Symp on Security and Privacy (SP). Piscataway, NJ: IEEE, 2016: 138−157
[30] Mera A, Feng B, Lu L, et al. DICE: Automatic emulation of DMA input channels for dynamic firmware analysis[C] //Proc of the 2021 IEEE Symp on Security and Privacy (SP). Piscataway, NJ: IEEE, 2021: 1938−1954
[31] Zhou Wei, Zhang Lan, Guan Le, et al. What your firmware tells you is not how you should emulate it: A specification-guided approach for firmware emulation[C] //Proc of the 2022 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2022: 3269−3283
[32] Scharnowski T, Bars N, Schloegel M, et al. Fuzzware: Using precise MMIO modeling for effective firmware fuzzing[C] //Proc of the 31st USENIX Security Symp. Berkeley, CA: USENIX, 2022: 1239−1256
[33] Farrelly G, Chesser M, Ranasinghe D C. Ember-IO: Effective firmware fuzzing with model-free memory mapped IO[J]. arXiv preprint, arXiv: 2301.06689, 2023
[34] Clements A A, Gustafson E, Scharnowski T, et al. HALucinator: Firmware Re-hosting through abstraction layer emulation[C] //Proc of the 29th USENIX Security Symp (USENIX Security’20). Berkeley, CA: USENIX, 2020: 1201−1218
[35] Muench M, Nisi D, Francillon A, et al. AVATAR 2: A multi-target orchestration platform[C] //Proc of 2018 Network and Distributed System Security Symp. CA: ISOC, 2018: 1−11
[36] Chen Cao, Le Guan, Jiang Ming, et al. Device-agnostic firmware execution is possible: A concolic execution approach for peripheral emulation[C] //Proc of In Annual Computer Security Applications Conf. New York: ACM, 2020: 746−759
[37] Chesser M, Nepal S, Ranasinghe D C. Icicle: A re-designed emulator for grey-box firmware fuzzing[J]. arXiv preprint, arXiv: 2301.13346, 2023
[38] Chen Zitai, Thomas S L, Garcia F D. MetaEmu: An architecture agnostic rehosting framework for automotive firmware[C] //Proc of the 2022 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2022: 515−529
[39] ReFirm Labs. Binwalk. [CP/OL].https://github.com/ReFirmLabs/binwalk
[40] Hemel A, Kalleberg K T, Vermaas R, et al. Finding software license violations through binary code clone detection[C] //Proc of the 8th Working Conf on Mining Software Repositories. New York: ACM, 2011: 63-72
[41] Costin A, Zaddach J, Francillon A, et al. A large-scale analysis of the security of embedded firmwares[C] //Proc of the 23rd USENIX Security Symp. Berkeley, CA: USENIX, 2014: 95−110
[42] Kargén U, Shahmehri N. Speeding up bug finding using focused fuzzing[C] //Proc of the 13th Int Conf on Availability, Reliability and Security. New York: ACM, 2018: 1−10
[43] Schwartz E J, Avgerinos T, Brumley D. All you ever wanted to know about dynamic taint analysis and forward symbolic execution (but might have been afraid to ask)[C] //Proc of the 2010 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2010: 317−331
[44] Magnusson P S, Christensson M, Eskilson J, et al. Simics: A full system simulation platform[J]. Computer, 2002, 35(2): 50−58 doi: 10.1109/2.982916
[45] Kim M, Kim D, Kim E, et al. FirmAE: Towards large-scale emulation of IoT firmware for dynamic analysis[C] //Proc of Annual Computer Security Applications Conf. New York: ACM, 2020: 733−745
[46] Jiang Muhui, Ma Lin, Zhou Yajin, et al. ECMO: Peripheral transplantation to rehost embedded linux kernels[C] //Proc of the 2021 ACM SIGSAC Conf on Computer and Communications Security. New York: ACM, 2021: 734−748
[47] Li Wenqiang, Guan Le, Lin Jingqiang, et al. From library portability to para-rehosting: Natively executing microcontroller software on commodity hardware[C] //Proc of the 28th Annual Network and Distributed System Security Symp. CA: ISOC, 2021: 1−18
[48] Corteggiani N, Camurati G, Francillon A. Inception: System-wide security testing of real-world embedded systems software[C] //Proc of the 27th USENIX Security Symp (USENIX Security’18). Berkeley, CA: USENIX, 2018: 309−326
[49] Muench M, Stijohann J, Kargl F, et al. What you corrupt is not what you crash: Challenges in fuzzing embedded devices[C] //Proc of the 25th Annual Network and Distributed System Security Symp. CA: ISOC, 2018: 1−15
[50] Hex Rays. IDA[CP/OL].https://hex-rays.com/products/ida/
[51] Vogl S, Gawlik R, Garmany B, et al. Dynamic hooks: Hiding control flow changes within non-control data[C] //Proc of the 23rd USENIX Security Symp (USENIX Security’14). Berkeley, CA: USENIX, 2014: 813−328
[52] Shoshitaishvili Y, Wang Ruoyu, Hauser C, et al. Firmalice-automatic detection of authentication bypass vulnerabilities in binary firmware[C] // Proc of the 22th Annual Network and Distributed System Security Symp. CA: ISOC. 2015: 1.1−8.1
[53] Pewny J, Garmany B, Gawlik R, et al. Cross-architecture bug search in binary executables[C] //Proc of the 2015 IEEE Symp on Security and Privacy. Piscataway, NJ: IEEE, 2015: 709−724
[54] Stephens N, Grosen J, Salls C, et al. Driller: Augmenting fuzzing through selective symbolic execution[C] // Proc of the 23rd Annual Network and Distributed System Security Symp. CA: ISOC: 2016: 1−16
[55] Parvez M R. Combining static analysis and targeted symbolic execution for scalable bug-finding in application binaries[D]. Washington: University of Waterloo, 2016
[56] Bao T, Wang R, Shoshitaishvili Y, et al. Your exploit is mine: Automatic shellcode transplant for remote exploits[C] //Proc of the 2017 IEEE Symp on Security and Privacy (SP). Piscataway, NJ: IEEE, 2017: 824−839
[57] Machiry A, Gustafson E, Spensky C, et al. BOOMERANG: Exploiting the semantic gap in trusted execution environments[C] // Proc of the 24th Annual Network and Distributed System Security Symp. CA: ISOC, 2017: 1−15
[58] Wang R, Shoshitaishvili Y, Bianchi A, et al. Ramblr: Making reassembly great again[C] // Proc of the 24th Annual Network and Distributed System Security Symp. CA: ISOC, 2017: 1−15
-
期刊类型引用(12)
1. 徐享希,李炯彬,郭志远. 车联网网络安全挑战与评估技术分析. 质量与认证. 2025(02): 83-86+91 . 百度学术
2. 郭健忠,王灿,谢斌,闵锐. 面向车联网DoS攻击的混合入侵检测系统. 计算机系统应用. 2025(03): 85-93 . 百度学术
3. 赵建斌,杜彦辉. 浅析车联网漏洞挖掘技术. 警察技术. 2025(02): 25-29 . 百度学术
4. 李俊吉,张佳琦,高改梅,杨莉. 基于信誉机制的车联网共识算法. 计算机工程. 2025(04): 217-226 . 百度学术
5. 黄金洲,杭波,王峰,徐德刚. 车联网技术在襄阳智慧交通建设中的应用. 智能城市. 2024(01): 20-23 . 百度学术
6. 李昱. 容许风险与自动驾驶场景中的注意义务. 现代法学. 2024(04): 161-174 . 百度学术
7. 谢勇,胡秋燕,李仁发,谢国琪,肖甫. 基于Uptane的汽车软件在线升级优化框架. 计算机研究与发展. 2024(09): 2145-2155 . 本站查看
8. 洪榛,冯王磊,温震宇,吴迪,李涛涛,伍一鸣,王聪,纪守领. 基于梯度回溯的联邦学习搭便车攻击检测. 计算机研究与发展. 2024(09): 2185-2198 . 本站查看
9. 李可,马赛,戴朋林,任婧,范平志. 基于多目标深度强化学习的车车通信无线资源分配算法. 计算机研究与发展. 2024(09): 2229-2245 . 本站查看
10. 顾芳铭,况博裕,许亚倩,付安民. 面向自动驾驶感知系统的对抗样本攻击研究综述. 信息安全研究. 2024(09): 786-794 . 百度学术
11. 刘雪娇,赵祥,夏莹杰,曹天聪. 空地协同场景下具有隐私保护的高效异构认证方案. 浙江大学学报(工学版). 2024(10): 1981-1991 . 百度学术
12. 权仕鑫,孙溶辰,刘留,孙志国. 车联网融合通信技术的场景仿真与分析. 应用科技. 2024(05): 190-196 . 百度学术
其他类型引用(11)