本技术涉及计算机,尤其涉及一种二进制代码的表示向量生成方法、装置、设备及存储介质。
背景技术:
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、一个示例中,处理单元,用于:
38、在待处理的二进制代码中包括多个指令的情况下,基于所述待处理的二进制代码所包括各个指令的,属于相同第一预设维度下的指令相关信息,确定指令信息序列;
39、对各所述第一预设维度下的指令信息序列进行求和处理,得到第二汇总处理结果。
40、一个示例中,该装置还包括:
41、训练单元,用于根据以下步骤训练预先训练好的向量生成模型:
42、获取二进制代码训练样本,并确定所述二进制代码训练样本所包括各个指令的,属于多个第二预设维度下的指令相关信息;其中,所述第二预设维度与所述第一预设维度相同;
43、对所述属于多个第二预设维度下的指令相关信息进行汇总处理,得到第三汇总处理结果;
44、按照预先设置的遮挡概率,和所述指令相关信息之间的第一关联关系,对所述第三汇总处理结果进行遮挡处理,得到遮挡后的汇总处理结果;其中,所述第一关联关系表征所述指令相关信息是否属于相同的指令;
45、基于所述遮挡后的汇总处理结果,训练向量生成模型,得到所述预先训练好的向量生成模型。
46、一个示例中,训练单元,用于:
47、对所述属于多个第二预设维度下的指令相关信息进行嵌入处理,得到多个第二目标相关信息;
48、对属于不同第二预设维度的,具有第二关联关系的各第二目标相关信息,进行求和处理,得到所述第三汇总处理结果;其中,所述第二关联关系表征所述第二目标相关信息是否属于相同指令内的相同分词。
49、第三方面,本技术实施例还提供一种计算机设备,包括:处理器,以及与所述处理器通信连接的存储器;
50、所述存储器存储计算机执行指令;
51、所述处理器执行所述存储器存储的计算机执行指令,以实现第一方面所述的方法。
52、第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现第一方面所述的方法。
53、第五方面,本技术提供一种计算机程序产品,所述计算机程序产品包括:计算机执行指令,所述计算机执行指令存储在可读存储介质中,计算机设备的至少一个处理器可以从所述可读存储介质读取所述计算机执行指令,所述至少一个处理器执行所述计算机执行指令,使得计算机设备执行第一方面所述的方法。
54、本技术提供的二进制代码的表示向量生成方法、装置、设备及存储介质,可以在获取待处理的二进制代码之后,确定待处理的二进制代码中所包括指令的,属于多个第一预设维度下的指令相关信息,从而可以根据第一预设维度,来获取待处理的二进制代码的指令相关信息,使获取到的指令相关信息种类更加全面、丰富,还能有效剔除无意义的信息。之后,可以将属于多个第一预设维度下的指令相关信息进行汇总处理后,输入至预先训练好的向量生成模型中进行处理,得到待处理的二进制代码对应的表示向量。这种实施方式,可以融合待处理的二进制代码的各种维度下的信息,来生成表示向量,提升了表示向量生成方法的鲁棒性和准确度,进而提升了生成的表示向量的质量。同时,高质量的表示向量,还有助于提升,基于该表示向量进行分析处理的分析任务的准确率,能够满足多种应用场景下的实际需求。