System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 基于二进制指令序列语义相似性的协议消息字段划分方法技术_技高网

基于二进制指令序列语义相似性的协议消息字段划分方法技术

技术编号:43901391 阅读:2 留言:0更新日期:2025-01-03 13:12
本发明专利技术公开了一种基于二进制指令序列语义相似性的协议消息字段划分方法,涉及协议逆向领域,包括:基于动态污点分析的二进制指令执行信息,构造与消息字段相关的指令集合;基于指令集合,分析指令内的消息字段使用特征,初步地划分消息得到候选字段;基于指令间的语义行为相似性,更新并得到最终的消息字段划分结果。本发明专利技术能够高效并精确地划分协议消息字段,有助于提高协议消息语义推断的分析效率和精准性,从而为协议消息的精确逆向提供重要支持。

【技术实现步骤摘要】

本专利技术涉及协议逆向领域,更具体的说是涉及协议消息字段划分的推断,尤其是基于执行轨迹的协议消息字段划分方案。


技术介绍

1、协议逆向工程(protocol reverse engineering,pre)是一种在协议规约未公开或不可用的情况下推断协议规范描述信息的技术。pre在网络审计、软件安全性分析、安全漏洞挖掘等涉及网络管理和网络攻防的领域都有着重要的应用。协议格式提取是pre的核心任务,旨在推断协议消息字段的语法和语义。其中,字段语法推断,也称消息字段划分,主要用于确定协议消息的结构规则,即每个消息字段在整个消息结构中的开始位置和结束位置。消息字段划分是进行协议消息格式提取的第一步和关键,其结果的准确性直接影响整个协议逆向过程的质量。

2、消息字段划分可以采用基于网络流量的方法和基于执行轨迹跟踪的方法。基于网络流量的方法通常采用构建统计模型或者机器学习的技术,虽然具备不受平台限制的优势,但字段划分结果的精确性受数据多样性影响较大。基于执行轨迹跟踪的方法通过监控和分析协议程序在解析报文时的执行轨迹,来推断协议字段的划分。其中,基于二进制指令分析的方法是该领域的主流技术。这种方法无需依赖协议实现的源代码,可以直接从协议实现程序的执行过程中提取协议字段划分信息,具有显著的精确性。

3、然而,尽管可以从程序的执行指令中获取丰富的运行时信息,但是,由于需要各种复杂的专业分析技术的支撑以及协议代码实现的多样性而导致的二进制指令的多样性,当前,基于二进制指令分析的字段划分方法仍面临着字段过划分和欠划分等问题,影响着字段划分结果的精确性。如何从二进制指令执行信息中精确地推断协议字段的格式,仍然是一个尚未解决的问题。


技术实现思路

1、有鉴于此,本专利技术的目的是提供一种基于二进制指令序列语义相似性的协议消息字段划分方法。这种方法通过捕获二进制指令执行信息构造指令集合,结合各指令内操作数的污点传播情况提取得到候选字段,再根据指令序列的语义相似性对相邻候选字段进行合并,得到最终的字段划分结果。此法提高了协议逆向分析中字段划分的效率和精准性,为协议安全性评估提供了强有力的技术支持。

2、为了实现上述目的,本专利技术提供如下技术方案:

3、一种基于二进制指令序列语义相似性的协议消息字段划分方法,包括以下步骤:

4、步骤一:将待进行字段划分的消息msg发送到具有记录指令执行信息功能的服务器端,以字节为单位进行污点传播的追踪,在服务器的日志信息中提取出处理msg的二进制指令执行信息集合ins;

5、步骤二:基于处理msg的二进制指令执行信息集合ins,根据指令内操作数的使用特征,提取每条指令内的被污染的字节序列作为候选字段,得到msg的初步字段划分结果集合l;

6、步骤三:基于处理msg的二进制指令执行信息集合ins以及msg的初步字段划分结果集合l,按照候选字段偏移量位置由小到大,对l内的元素进行排序并更新l;

7、步骤四:从ins提取与l中每个候选字段相关的指令序列,利用nw算法分析指令序列的语义相似性,合并l内指令序列语义相似的相邻候选字段,输出msg的最终字段划分结果。

8、进一步,所述步骤二,具体包括如下步骤:

9、步骤a1:遍历ins,若ins尚未遍历完毕,则从ins中读取一条未被遍历的指令inst和inst内涉及的操作数集合oprd,继续执行步骤a2;否则,msg的基于指令内分析的初步字段划分结束,输出初步字段划分结果集合l;

10、步骤a2:遍历oprd,若oprd尚未遍历完毕,则从oprd中读取一个未被遍历的操作数operand,继续执行步骤a3;否则,返回步骤a1;

11、步骤a3:判断operand是否被污染,如果被污染,则从inst的执行信息中提取污染operand的msg内的连续字节偏移量位置,将这些连续字节偏移量位置作为一个候选字段加入集合l中;否则,返回步骤a2;

12、进一步,所述步骤四,具体包括如下步骤:

13、步骤b1:按顺序遍历l,若l尚未遍历完毕,则从l中读取下一组未被遍历的候选字段li和li+1,继续步骤b2;否则,执行步骤b3;

14、步骤b2:判断li和li+1的指令序列语义是否相似,若相似,则将li和li+1合并为一个新的候选字段,更新li+1并将li赋值为空值null;若li和li+1的指令序列语义不相似,则返回b1;

15、步骤b3:删除l中所有空值null,即得msg的最终字段划分结果。

16、进一步,所述步骤b2中的判断候选字段li和li+1的指令序列语义是否相似,,具体包括如下步骤:

17、步骤c1:分别提取候选字段li和li+1对应的字节序列bs(i,j)和bs(j+1,k);

18、步骤c2:遍历ins,若ins尚未遍历完毕,则从ins中取出一条尚未遍历的指令inst以及inst访问的被污染的字节构成的字节序列seq,继续执行c3;否则,执行步骤c4;

19、步骤c3:判断seq是否是bs(i,j)和bs(j+1,k)的子序列,若seq是bs(i,j)的子序列,则将inst加入与候选字段li相关的指令集合i;若seq是bs(j+1,k)的子序列,则将inst加入与候选字段li+1相关的指令集合j;若seq既不是bs(i,j)的子序列也不是bs(j+1,k)的子序列,则返回步骤c2;

20、步骤c4:计算集合i和集合j之间的指令语义相似度得分,若语义相似度得分大于等于相似度阈值,则判定候选字段li和li+1为语义相似;否则,判定候选字段li和li+1语义不相似。

21、经由上述的技术方案可知,与现有技术相比,本专利技术提供了一种基于二进制指令序列语义相似性的协议消息字段划分方法。本方法针对当前基于二进制指令的消息字段划分方法,由于存在过划分和欠划分而导致划分结果不准确的问题,结合指令间分析技术,提出了一种基于二进制指令序列语义相似性的协议消息字段划分方法。本方法根据动态污点分析信息,首先基于二进制指令内操作数的使用特征,提取被污染的字节序列作为候选字段,获取初步字段划分初步结果。然后,使用nw算法,判断相关指令序列之间的语义相似性并合并语义行为相似的字段,消除初步字段划分结果中存在的过划分和欠划分,从而确保最终划分结果的精确性。

本文档来自技高网...

【技术保护点】

1.一种基于二进制指令序列语义相似性的协议消息字段划分方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的协议消息字段划分方法,其特征在于,所述步骤二,具体包括如下步骤:

3.根据权利要求1所述的协议消息字段划分方法,其特征在于,所述步骤四,具体包括如下步骤:

4.根据权利要求1所述的协议消息段划分方法,其特征在于,所述步骤B2中的判断候选字段Li和Li+1的指令序列语义是否相似,具体包括如下步骤:

【技术特征摘要】

1.一种基于二进制指令序列语义相似性的协议消息字段划分方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的协议消息字段划分方法,其特征在于,所述步骤二,具体包括如下步骤:

3.根据权利要求1所...

【专利技术属性】
技术研发人员:姜嘉仪张锡元陈浩仪苏亭万成城孙海英
申请(专利权)人:华东师范大学
类型:发明
国别省市:

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

1