System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种二进制代码的表示向量生成方法、装置、设备及存储介质。
技术介绍
1、二进制代码的表示向量可以对完整的二进制代码或者二进制代码的片段进行数值化表示,从而可以根据该表示向量对二进制码进行逆向分析,例如,可以根据该表示向量进行漏洞搜索、恶意软件聚类、恶意软件检测、补丁分析、软件盗版检测等。因此,二进制代码的表示向量生成的准确度至关重要。
2、但是,现有的利用深度学习来生成二进制代码的表示向量的方法中,主要是通过网络模型直接编码二进制代码,来预测二进制代码的表示向量,导致对二进制代码的相关内容的利用率较低,影响了二进制代码的表示向量的生成精度。
技术实现思路
1、本申请提供一种二进制代码的表示向量生成方法、装置、设备及存储介质,用以解决现有的二进制代码的表示向量的生成过程中,对二进制代码的理解不够深入,导致对二进制代码的利用率低,影响了二进制代码的表示向量的生成精度的问题。
2、第一方面,本申请提供一种二进制代码的表示向量生成方法,包括:
3、获取待处理的二进制代码;其中,所述待处理的二进制代码中包括至少一个指令;
4、确定所述待处理的二进制代码中所包括指令的,属于多个第一预设维度下的指令相关信息;其中,所述第一预设维度表征所述指令相关信息的类别;所述指令相关信息表征所述指令的指令内容;
5、将所述属于多个第一预设维度下的指令相关信息进行汇总处理后,输入至预先训练好的向量生成模型中进行处理,得到所述待
6、一个示例中,所述确定所述待处理的二进制代码中所包括指令的,属于多个第一预设维度下的指令相关信息,包括:
7、基于所述待处理的二进制代码中的指令,所包括的助记符和操作数,确定所述指令内的分词,并在对所述指令内的分词进行正则化处理之后,得到所述待处理的二进制代码中所包括指令的,属于词维度下的指令相关信息;其中,所述词维度表征所述指令内的分词;
8、确定各所述指令内的分词所对应的词属性信息,并基于所述词属性信息,确定所述待处理的二进制代码中所包括指令的,属于知识维度下的指令相关信息;其中,所述知识维度表征所述指令内的分词的词属性信息;
9、确定各所述指令内的分词,在所述待处理的二进制代码中的所在位置,并基于所述所在位置,确定所述待处理的二进制代码中所包括指令的,属于位置维度下的指令相关信息;其中,所述位置维度表征所述指令内的分词在所述待处理的二进制代码中的位置。
10、一个示例中,所述词属性信息至少包括以下信息:所述分词所属指令的指令类型信息、所述分词对应的操作数类型信息、所述分词对应的操作数读写状态信息、所述分词对应的寄存器状态信息。
11、一个示例中,将所述属于多个第一预设维度下的指令相关信息进行汇总处理,包括:
12、对所述属于多个第一预设维度下的指令相关信息进行嵌入处理,得到多个第一目标相关信息;
13、对隶属于相同分词的,属于多个第一预设维度下的第一目标相关信息进行求和处理,得到第一汇总处理结果。
14、一个示例中,所述待处理的二进制代码中包括多个指令,将所述属于多个第一预设维度下的指令相关信息进行汇总处理,包括:
15、基于所述待处理的二进制代码所包括各个指令的,属于相同第一预设维度下的指令相关信息,确定指令信息序列;
16、对各所述第一预设维度下的指令信息序列进行求和处理,得到第二汇总处理结果。
17、一个示例中,所述预先训练好的向量生成模型为根据以下步骤训练得到的:
18、获取二进制代码训练样本,并确定所述二进制代码训练样本所包括各个指令的,属于多个第二预设维度下的指令相关信息;其中,所述第二预设维度与所述第一预设维度相同;
19、对所述属于多个第二预设维度下的指令相关信息进行汇总处理,得到第三汇总处理结果;
20、按照预先设置的遮挡概率,和所述指令相关信息之间的第一关联关系,对所述第三汇总处理结果进行遮挡处理,得到遮挡后的汇总处理结果;其中,所述第一关联关系表征所述指令相关信息是否属于相同的指令;
21、基于所述遮挡后的汇总处理结果,训练向量生成模型,得到所述预先训练好的向量生成模型。
22、一个示例中,对所述属于多个第二预设维度下的指令相关信息进行汇总处理,得到第三汇总处理结果,包括:
23、对所述属于多个第二预设维度下的指令相关信息进行嵌入处理,得到多个第二目标相关信息;
24、对属于不同第二预设维度的,具有第二关联关系的各第二目标相关信息,进行求和处理,得到所述第三汇总处理结果;其中,所述第二关联关系表征所述第二目标相关信息是否属于相同指令内的相同分词。
25、第二方面,本申请提供一种二进制代码的表示向量生成装置,包括:
26、获取单元,用于获取待处理的二进制代码;其中,所述待处理的二进制代码中包括至少一个指令;
27、确定单元,用于确定所述待处理的二进制代码中所包括指令的,属于多个第一预设维度下的指令相关信息;其中,所述第一预设维度表征所述指令相关信息的类别;所述指令相关信息表征所述指令的指令内容;
28、处理单元,用于将所述属于多个第一预设维度下的指令相关信息进行汇总处理后,输入至预先训练好的向量生成模型中进行处理,得到所述待处理的二进制代码对应的表示向量。
29、一个示例中,确定单元,用于:
30、基于所述待处理的二进制代码中的指令,所包括的助记符和操作数,确定所述指令内的分词,并在对所述指令内的分词进行正则化处理之后,得到所述待处理的二进制代码中所包括指令的,属于词维度下的指令相关信息;其中,所述词维度表征所述指令内的分词;
31、确定各所述指令内的分词所对应的词属性信息,并基于所述词属性信息,确定所述待处理的二进制代码中所包括指令的,属于知识维度下的指令相关信息;其中,所述知识维度表征所述指令内的分词的词属性信息;
32、确定各所述指令内的分词,在所述待处理的二进制代码中的所在位置,并基于所述所在位置,确定所述待处理的二进制代码中所包括指令的,属于位置维度下的指令相关信息;其中,所述位置维度表征所述指令内的分词在所述待处理的二进制代码中的位置。
33、一个示例中,所述词属性信息至少包括以下信息:所述分词所属指令的指令类型信息、所述分词对应的操作数类型信息、所述分词对应的操作数读写状态信息、所述分词对应的寄存器状态信息。
34、一个示例中,处理单元,用于:
35、对所述属于多个第一预设维度下的指令相关信息进行嵌入处理,得到多个第一目标相关信息;
36、对隶属于相同分词的,属于多个第一预设维度下的第一目标相关信息进行求和处理,得到第一汇总处理结果。
37、一个示例中,处理单元,用于:
...
【技术保护点】
1.一种二进制代码的表示向量生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述待处理的二进制代码中所包括指令的,属于多个第一预设维度下的指令相关信息,包括:
3.根据权利要求2所述的方法,其特征在于,所述词属性信息至少包括以下信息:所述分词所属指令的指令类型信息、所述分词对应的操作数类型信息、所述分词对应的操作数读写状态信息、所述分词对应的寄存器状态信息。
4.根据权利要求2所述的方法,其特征在于,将所述属于多个第一预设维度下的指令相关信息进行汇总处理,包括:
5.根据权利要求1所述的方法,其特征在于,所述待处理的二进制代码中包括多个指令,将所述属于多个第一预设维度下的指令相关信息进行汇总处理,包括:
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述预先训练好的向量生成模型为根据以下步骤训练得到的:
7.根据权利要求6所述的方法,其特征在于,对所述属于多个第二预设维度下的指令相关信息进行汇总处理,得到第三汇总处理结果,包括:
8.一种二进制代码的
9.一种计算机设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至7中任一项所述的二进制代码的表示向量生成方法。
...【技术特征摘要】
1.一种二进制代码的表示向量生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述确定所述待处理的二进制代码中所包括指令的,属于多个第一预设维度下的指令相关信息,包括:
3.根据权利要求2所述的方法,其特征在于,所述词属性信息至少包括以下信息:所述分词所属指令的指令类型信息、所述分词对应的操作数类型信息、所述分词对应的操作数读写状态信息、所述分词对应的寄存器状态信息。
4.根据权利要求2所述的方法,其特征在于,将所述属于多个第一预设维度下的指令相关信息进行汇总处理,包括:
5.根据权利要求1所述的方法,其特征在于,所述待处理的二进制代码中包括多个指令,将所述属于多个第一预设维度下...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。