CN116644732A - 二进制加密算法的识别方法、装置、电子设备及存储介质 - Google Patents
二进制加密算法的识别方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116644732A CN116644732A CN202310416952.0A CN202310416952A CN116644732A CN 116644732 A CN116644732 A CN 116644732A CN 202310416952 A CN202310416952 A CN 202310416952A CN 116644732 A CN116644732 A CN 116644732A
- Authority
- CN
- China
- Prior art keywords
- vector
- encrypted data
- flow chart
- encryption algorithm
- generating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 88
- 239000013598 vector Substances 0.000 claims abstract description 182
- 238000012545 processing Methods 0.000 claims abstract description 41
- 238000000605 extraction Methods 0.000 claims description 33
- 230000008447 perception Effects 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 11
- 239000011159 matrix material Substances 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 7
- 230000004913 activation Effects 0.000 claims description 5
- 238000013527 convolutional neural network Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 18
- 230000003068 static effect Effects 0.000 description 18
- 238000001514 detection method Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 17
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000003446 memory effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/194—Calculation of difference between files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/16—Image preprocessing
- G06V30/162—Quantising the image signal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种二进制加密算法的识别方法、装置、电子设备及存储介质,包括:获取加密数据;对所述加密数据进行反汇编处理,得到反汇编处理后的加密数据;基于所述反汇编处理后的加密数据生成流程图,并确定所述流程图的第一向量;基于所述加密数据的灰度级生成灰度图像,并确定所述灰度图像的第二向量;基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别。本公开中首先获取了加密数据,然后对加密数据进行反汇编处理得到了反汇编处理后的加密数据,之后再通过反汇编处理后的加密数据分别生成了流程图以及灰度图像,进而得到了第一向量以及第二向量,最后通过第一向量以及第二向量对加密数据的加密算法进行了识别。
Description
技术领域
本发明涉及代码检测技术领域,尤其涉及一种二进制加密算法的识别方法、装置、电子设备及存储介质。
背景技术
二进制密码算法识别是代码相似度检测技术的具体应用。目前,按照其所依据的代码特征的不同,其检测(识别)方法可以分为静态检测和动态检测两大类,其中静态检测进一步可分为基于静态低级特征的提取分析方法和基于静态高级特征的提取分析方法。
现有技术中,基于静态特征的算法识别方法依赖于密码算法的静态特征字、统计特征等来实。其特征的提取效果将直接影响密码算法的识别准确率。同时,此种方法还需要对每一种密码算法都有深入的了解,这就导致了基于此种方法所生成的模型的效率低,泛化能力差,且不易于维护。现有的动态检测(识别)方法虽然准确率更高,但是动态分析方法通常仅在特定的环境下适用,不具备良好的通用性,而且动态执行方法需要花费更长的时间,不便大规模开展。
发明内容
有鉴于此,本公开的目的在于提出一种二进制加密算法的识别方法、装置、电子设备及存储介质。
作为本公开的一个方面,提供了一种二进制加密算法的识别方法,其特征在于,包括:
获取加密数据;
对所述加密数据进行反汇编处理,得到反汇编处理后的加密数据;
基于所述反汇编处理后的加密数据生成流程图,并确定所述流程图的第一向量;
基于所述加密数据的灰度级生成灰度图像,并确定所述灰度图像的第二向量;
基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别。
可选的,所述确定所述流程图的第一向量,包括:
基于所述流程图中的基本块的语义信息,得到所述流程图的结构感知向量;
基于所述流程图中的基本块的邻接关系,得到所述流程图的节点顺序向量;
将所述结构感知向量以及所述节点顺序向量进行拼接处理,得到所述流程图的第一向量。
可选的,所述获取所述流程图中基本块的语义信息,并生成所述流程图的结构感知向量,包括:
提取所述反汇编处理后的加密数据的语义信息;
基于所述语义信息对所述流程图中的基本块进行替换处理,并生成结构感知图;
对所述结构感知图进行特征提取,得到结构感知向量。
可选的,所述获取所述流程图中基本块的邻接关系,并生成所述流程图的节点顺序向量,包括:
获取所述流程图中的基本块间的邻接关系,并生成邻接矩阵;
基于预设的卷积神经网络对所述邻接矩阵进行特征提取,得到节点顺序向量。
可选的,所述基于所述加密数据的灰度级生成灰度图像,包括:
确定所述加密数据的灰度级;
基于所述灰度级对所述加密数据进行分组处理,并得到分组处理后的加密数据;
基于预设的进制数值对所述分组处理后的加密数据进行进制转换,得到进制转换后的加密数据;
基于所述进制转换后的加密数据生成灰度图像。
可选的,所述确定所述灰度图像的第二向量,包括:
对所述灰度图像进行特征提取,并得到所述灰度图像的特征提取图;
基于所述第一向量的维度信息对所述特征提取图进行维度调整,并得到调整后的特征提取图;
确定所述调整后的特征提取图的第二向量。
可选的,所述基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别,包括:
将所述第一向量以及所述第二向量进行拼接处理,并得到第三向量;
基于预设的激活函数计算所述第三向量的权重值;
基于所述权重值对所述第一向量以及所述第二向量进行加权求和处理,并得到识别向量;
基于所述识别向量对所述加密数据的加密算法进行识别。
作为本公开的第二个方面,本公开还提供了一种二进制加密算法的识别装置,包括:
数据获取模块,被配置为:获取加密数据;
反汇编处理模块,被配置为:对所述加密数据进行反汇编处理,得到反汇编处理后的加密数据;
第一向量生成模块,被配置为:基于所述反汇编处理后的加密数据生成流程图,并确定所述流程图的第一向量;
第二向量生成模块,被配置为:基于所述加密数据的灰度级生成灰度图像,并确定所述灰度图像的第二向量;
密码算法识别模块,被配置为:基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别。
作为本公开的第三个方面,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现本公开所提供的上述的二进制加密算法的识别方法。
作为本公开的第四个方面,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任意一项所述的方法。
如上所述,本公开中首先获取了加密数据,然后对加密数据进行反汇编处理得到了原始的加密数据内容(既,反汇编处理后的加密数据),之后再基于原始的加密数据内容分别生成了流程图以及灰度图像,进而得到了用于表示流程图的第一向量以及用于表示灰度图像的第二向量,之后再将第一向量以及第二向量进行加权处理得到了用于识别密码算法的识别向量,最后通过识别向量对加密数据的加密算法进行了识别。
附图说明
为了更清楚地说明本公开或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本公开实施例所提供的一种二进制加密算法的识别方法示意图。
图1B为本公开实施例所提供的一种流程图的示意图。
图1C为本公开实施例所提供的一种生成灰度图像的方法示意图。
图2为本公开实施例所提供的一种二进制加密算法的识别装置结构示意图。
图3为本公开实施例所提供的一种二进制加密算法的识别方法的电子设备结构示意图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
如背景技术部分所述,二进制密码算法识别是代码相似度检测技术的具体应用。目前,按照其所依据的代码特征的不同,其检测(识别)方法可以分为静态检测和动态检测两大类,其中静态检测进一步可分为基于静态低级特征的提取分析方法和基于静态高级特征的提取分析方法。
现有技术中,基于静态特征的算法识别方法依赖于密码算法的静态特征字、统计特征等来实。其特征的提取效果将直接影响密码算法的识别准确率。同时,此种方法还需要对每一种密码算法都有深入的了解,这就导致了基于此种方法所生成的模型的效率低,泛化能力差,且不易于维护。现有的动态检测(识别)方法虽然准确率更高,但是动态分析方法通常仅在特定的环境下适用,不具备良好的通用性,而且动态执行方法需要花费更长的时间,不便大规模开展。
具体来讲,基于低级静态特征的分析方法中涉及到的特征主要有文件结构、字节图像、字节信息熵等。其中由于二进制的文件结构易于修改,导致基于文件结构特征的方法很容易被攻击,也存在着容易被规避的缺点;字节图像特征方面,直接生成的恶意代码灰度图像大小不一,对灰度图像进行特征提取或学习时,通常需要使用裁剪或缩放使其大小统一,该过程中,原始的二进制信息会部分缺失,对后期特征分析造成一定的影响,其他拓展方法虽能对灰度图进行增强,但是这些方法又依赖于其他特征,降低了方法的跨平台能力;信息熵特征方面,信息熵分析是一种计算密集型的方法,其计算过程不仅涉及字节概率统计运算,还包括乘法及对数运算等,特别是对多个代码片段分别进行熵值计算时该过程通常比较耗时,同时需要较高算力。
此外,基于静态高级特征的分析方法中涉及到的特征主要包括字符串、操作码、控制流图等。其中基于字符串特征的检测方法容易失效,通过删除签名信息或篡改调试信息等操作对恶意代码进行修改能够规避基于机器学习的静态检测;对于基于操作码特征的分析方法,该类方法再获取操作码特征时需要使用二进制分析框架给出的精确控制流图,导致计算开销较大;对基于CFG的分析方法,由于二进制代码的混淆保护机制,有时甚至难以找到二进制的原始入口点来进行静态分析,而且反汇编引擎通常难以处理间接跳转,精确提取二进制代码控制流图的难度非常大。
同时,基于动态特征的分析方法中涉及到的特征包括文件访问、函数调用、动态指令及数据流动等行为特征。其中基于动态指令特征的分析方法通常需要对动态指令进行逐一分析,对复杂的软件代码难以进行有效的分析;API调用特征分析也存在着难以覆盖所有可能的执行路径、分析过程耗时等缺点。此外除了动态指令及API调用特征以外,其他动态行为如硬件计数器行为、网络及流量活动、内存活动等特征也可用于二进制代码特征分析,但是这些方法通常仅在特定的环境下适用,不具备良好的通用性。
为了解决上述问题,本公开提供了一种二进制加密算法的识别方法、装置、电子设备及存储介质。通过上述方法,本公开中首先获取了加密数据,然后对加密数据进行反汇编处理得到了原始的加密数据内容(既,反汇编处理后的加密数据),之后再基于原始的加密数据内容分别生成了流程图以及灰度图像,进而得到了用于表示流程图的第一向量以及用于表示灰度图像的第二向量,之后再将第一向量以及第二向量通过使用注意力机制进行加权处理得到了用于识别密码算法的识别向量,最后通过识别向量对加密数据的加密算法进行了识别。
在上述过程中,本公开中通过对加密文件(二进制文件)进行反汇编处理,使得本公开中的方法可以直接对历史原文件(既,反汇编处理后的加密文件)进行处理,进而避免了二进制文件的易于被更改可能。同时,本公开中的方法还分别对流程图以及灰度图像的特征进行了提取,这使得最终的密码算法的识别结果的准确率大幅提高。此外,本公开中的方法还具有跨平台、跨编译能力强以及抗混淆能力强的优点。
在介绍了本公开的基本原理之后,下面具体介绍本公开的各种非限制性实施方式。
图1A为本公开实施例所提供的一种二进制加密算法的识别方法示意图。
图1A所示的二进制加密算法的识别方法进一步包括以下步骤:
步骤S10:获取加密数据。
在一些可选的实施例中,本公开中的二进制加密算法的识别方法可以通过算法识别系统来完成。具体的,当需要对加密数据的加密算法进行识别时,可以先通过算法识别系统对加密数据进行获取。可以理解的是,算法识别系统是智能操作系统,因此其既可以获取若干组加密数据并同时对这些加密数据的加密算法进行识别,其也可以只获取一组加密数据并完成加密算法的识别。本实施例中仅以获取若干组加密数据的情况为例进行说明。
在一些可选的实施例中,当算法识别系统获取到若干组加密数据后,可以使用Obuscator-LLVM(代码混淆工具)在这些加密数据中随机选取一部分(或者,选取预设数值)的加密数据进行混淆处理,并得到混淆处理后的加密数据。在本公开中,基于前述的混淆处理使得算法识别系统所获取到的加密数据不可读,进而也提高了本公开中所述的方法的抗混淆能力。
在一些可选的实施例中,当得到混淆处理后的加密数据后,可以将这些加密数据与原始的加密数据(既,未混淆处理的加密数据)汇总在一起进行接下来的处理。
在一些可选的实施例中,算法识别系统在对加密数据进行识别处理之前还可以预先构建加密算法库。这样,当算法识别系统识别出加密数据的特征后,其可以将所识别出的特征与加密算法库中的加密算法的特征进行对比,进而确定出所要识别的加密数据的加密算法。可以理解的是,通过预先构建了加密算法库可以使得整个加密算法的识别过程更加快速,并且所识别出来的结果也更加的准确。
在一些可选的实施例中,加密算法库的构建过程可以具体为,先在各类开源加密库以及平台系统中提取大量的加密算法,然后将所提取的加密算法按照其所属的加密类型分为分组密码、公钥密码、流密码以及Hash函数四类。可以理解的是,还可以分成更多的类别,本实施例中仅以前述四类为例进行说明。
在一些可选的实施例中,在对所提取的加密算法进行分类后,可以对这些加密算法的特征进行提取。之后,还可以将每种密码算法以及针对每种密码算法所提取到的特征绑定在一起,并使用GCC(编译器)和CLANG(编译器)对其所在的源代码文件进行编译进而生成多个二进制文件。之后可以将这些二进制文件保存在加密算法库中,以完成加密算法库的构建。
步骤S20:对所述加密数据进行反汇编处理,得到反汇编处理后的加密数据。
在一些可选的实施例中,当算法识别系统得到加密数据后(包括,混淆处理后的加密数据以及未混淆处理的加密数据),其可以使用IDA Pro7.0(反汇编工具),对加密数据进行逆向分析,进而得到反汇编处理后的加密数据(既,数据的原始内容)。可以理解的是,本公开中所述的加密数据均是基于进制形式所表示的数据,而反汇编处理后的加密数据是将此进制形式进行了反汇编处理,进而得到了此数据的具体内容表示。
步骤S30:基于所述反汇编处理后的加密数据生成流程图,并确定所述流程图的第一向量。
在一些可选的实施例中,当得到反汇编处理后的加密数据以后,算法识别系统还可以基于其生成流程图。具体的,算法识别系统还可以使用IDA Pro7.0对其进行处理并得到反汇编处理后的加密数据的控制流图。然后再并借助LLVM IR(编译工具)得到反汇编处理后的加密数据的数据流图。此时,算法识别系统可以将前述的数据流图和控制流图分别存在两个不同的文件中,之后在使用的过程中分别对两文件进行读取即可。如此,可以使得算法识别系统,能够更加方便且快速的对数据流图以及控制流图进行区分。
图1B为本公开实施例所提供的一种流程图的示意图。
在一些可选的实施例中,请参考图1B所示,其中,①、②、③以及④分别代表流程图的基本块,基本块中的内容则表示为反汇编处理后的加密数据的具体数据内容。从图中可以看出流程图是控制流图(图1B中②和③的连接形成的关系图)和数据流图(图1B中①和②以及①和③的连接形成的关系图)的结合体。其中,图中编号为0的连线代表控制流图之间关系连线,编号为1的虚线代表数据流图结点之间的关系连线。
在一些可选的实施例中,步骤S30具体包括:
S301:基于所述流程图中的基本块的语义信息,得到所述流程图的结构感知向量。
在一些可选的实施例中,步骤S301具体包括:
S3011:提取所述反汇编处理后的加密数据的语义信息。
S3012:基于所述语义信息对所述流程图中的基本块进行替换处理,并生成结构感知图。
S3013:对所述结构感知图进行特征提取,得到结构感知向量。
在一些可选的实施例中,在算法识别系统基于反汇编处理后的加密数据生成流程图后(包括,控制流图和数据流图),其还可以基于流程图内的语义信息内容生成流程图的结构感知向量。
在一些可选的实施例中,结构感知向量的生成过程可以理解为,算法识别系统先对反汇编处理后的加密数据的语义信息进行提取,然后基于所提取到的语义信息生成流程图中每个基本块(既,图1B中①、②、③以及④)的可视化值(embedding)。之后使用可视化值(embedding)对流程图中的每一个基本块进行替换处理。最后,在将流程图中所有基本块都通过可视化值(embedding)替换后,可以得到结构感知图(既,包含可视化值的流程图)。
在一些可选的实施例中,当得到结构感知图后,算法识别系统可以使用消息传递网络结构感知图进行特征提取,最终可以得到用以表示此结构感知图的结构感知向量。
S302:基于所述流程图中的基本块的邻接关系,得到所述流程图的节点顺序向量。
在一些可选的实施例中,步骤S302具体包括:
S3021:获取所述流程图中的基本块间的邻接关系,并生成邻接矩阵。
S3022:基于预设的卷积神经网络对所述邻接矩阵进行特征提取,得到节点顺序向量。
在一些可选的实施例中,算法识别系统在得到结构感知向量后,还可以基于流程图内基本块的邻接关系,得到用以表示流程图顺序的节点顺序向量。具体的,算法识别系统可以先获取流程图中的基本块间的邻接关系,并基于此邻接关系生成邻接矩阵。
在一些可选的实施例中,当得到邻接矩阵后,算法识别系统还可以基于预设的卷积神经网络对邻接矩阵进行特征提取,进而得到用以表示流程图顺序的节点顺序向量。
S303:将所述结构感知向量以及所述节点顺序向量进行拼接处理,得到所述流程图的第一向量。
在一些可选的实施例中,算法识别系统在得到结构感知向量以及节点顺序向量后,可以对其进行拼接处理。然后再使用MLP(多层感知器)对拼接后的向量(包含结构感知向量以及节点顺序向量)进行感知处理后,得到用以表示整个流程图的第一向量。
步骤S40:基于所述加密数据的灰度级生成灰度图像,并确定所述灰度图像的第二向量。
在一些可选的实施例中,步骤S40具体包括:
S401:确定所述加密数据的灰度级。
S402:基于所述灰度级对所述加密数据进行分组处理,并得到分组处理后的加密数据。
S403:基于预设的进制数值对所述分组处理后的加密数据进行进制转换,得到进制转换后的加密数据。
S404:基于所述进制转换后的加密数据生成灰度图像。
在一些可选的实施例中,算法识别系统在确定了用以表示整个流程图的第一向量后,还可以确定用以表示灰度图像特征的第二向量。可以理解的是,第二向量的确定过程与第一向量的确定过程并无关联,因此算法识别系统还可以先确定第二向量,然后再确定第一向量。
在一些可选的实施例中,加密数据可以是密码算法的原始二进制表示形式,因此确定第二向量的过程可以具体为,算法识别系统先确定加密数据的灰度级,然后基于灰度级对加密数据进行分组处理,并得到分组处理后的加密数据,之后再基于预设的进制数值(如,十进制等)对分组处理后的加密数据进行进制转换,得到进制转换后的加密数据。最后基于进制转换后的加密数据生成灰度图像。
图1C为本公开实施例所提供的一种生成灰度图像的方法示意图。
在一些可选的实施例中,如图1C所示,加密数据的表示看可以如模块1所示的形式(既,密码算法的原始二进制表示形式)。基于此,灰度图像的生成过程还可以具体为,对此原始二进制表示形式进行分组处理。具体的,可以设置8字节为一组,然后将前述的原始二进制表示按照预设的8字节的长度进行截取(图1C中的模块2)进而实现分组。还需要说明的是,在分组过程中还可以先设置灰度图像的像素的最大宽度。
在一些可选的实施例中,前述的分组过程还可以继续为,若在对原始二进制表示进行截取后,有多余的二进制数据则对其舍弃。此时,可以保证每个字节的值在0-255范围之内。之后,当每行数据到达最大宽度时换到下一行继续进行分组,进而将一维数组转换成二维数组(图1C中的模块3),若最后一行的数据量达不到设置的最大宽度时则舍弃最后一行的数据。最后以数组中的值为像素点生成灰度图像(图1C中的模块4),进而实现了对加密数据的可视化成像。
S405:对所述灰度图像进行特征提取,并得到所述灰度图像的特征提取图。
S406:基于所述第一向量的维度信息对所述特征提取图进行维度调整,并得到调整后的特征提取图。
S407:确定所述调整后的特征提取图的第二向量。
在一些可选的实施例中,在得到灰度图像之后,算法识别系统还可以对灰度图像进行特征提取,并得到灰度图像的特征提取图。之后,再基于第一向量的维度信息(例如,二维向量等)对所述特征提取图进行维度调整,并得到调整后的特征提取图。最后,确定调整后的特征提取图的第二向量。可以理解的是,算法识别系统还可以以第一向量的维度为基准,并通过全连接神经网络对灰度图像的特征提取图进行维度调整,进而直接生成与第一向量具有相同维度的第二向量。
步骤S50:基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别。
在一些可选的实施例中,步骤S50具体包括:
S501:将所述第一向量以及所述第二向量进行拼接处理,并得到第三向量。
S502:基于预设的激活函数计算所述第三向量的权重值。
S503:基于所述权重值对所述第一向量以及所述第二向量进行加权求和处理,并得到识别向量。
S504:基于所述识别向量对所述加密数据的加密算法进行识别。
在一些可选的实施例中,算法识别系统在得到第一向量以及第二向量后,其则可以通过上述两种向量,对加密数据的加密算法进行识别处理。具体来讲,算法识别系统可以先将所述第一向量以及所述第二向量进行拼接处理,并得到第三向量。然后将第三向量放入预设的(全连接)神经网络中,并通过使用预设的激活函数计算第三向量的权重分数(权重值),之后再使用得到的权重分数后对两个特征向量(既,第一向量以及第二向量)进行加权求和,进而得到代表此加密数据的识别向量。之后算法识别系统可以对此识别向量进行识别处理,最终可以基于此识别向量确定其所表示的加密数据的加密算法。
在一些可选的实施例中,算法识别系统在得到识别向量后,还可以将其作为输入向量输入至加密算法库中,然后基于加密算法库中所预设的MLP(多层感知器)模块得到输入的识别向量所属的加密算法的类别。
综上所述,本公开中首先获取了加密数据,然后对加密数据进行反汇编处理得到了原始的加密数据内容(既,反汇编处理后的加密数据),之后再基于原始的加密数据内容分别生成了流程图以及灰度图像,进而得到了用于表示流程图的第一向量以及用于表示灰度图像的第二向量,之后再将第一向量以及第二向量进行加权处理得到了用于识别密码算法的识别向量,最后通过识别向量对加密数据的加密算法进行了识别。
基于同一技术构思,与上述任意实施例方法相对应的,本公开还提供了一种二进制加密算法的识别装置,通过本公开所提供的二进制加密算法的识别装置可以实现以上任意一实施例所述的二进制加密算法的识别方法。
图2为本公开实施例所提供的一种二进制加密算法的识别装置结构示意图。
图2所示的二进制加密算法的识别装置进一步包括以下模块:
数据获取模块10、反汇编处理模块20、第一向量生成模块30、第二向量生成模块40以及密码算法识别模块50;
其中,所述数据获取模块10,被配置为:获取加密数据。
所述反汇编处理模块20,被配置为:对所述加密数据进行反汇编处理,得到反汇编处理后的加密数据。
所述第一向量生成模块30,被配置为:基于所述反汇编处理后的加密数据生成流程图,并确定所述流程图的第一向量。具体执行以下步骤:
基于所述流程图中的基本块的语义信息,得到所述流程图的结构感知向量;包括:
提取所述反汇编处理后的加密数据的语义信息;
基于所述语义信息对所述流程图中的基本块进行替换处理,并生成结构感知图;
对所述结构感知图进行特征提取,得到结构感知向量;
基于所述流程图中的基本块的邻接关系,得到所述流程图的节点顺序向量;包括:
获取所述流程图中的基本块间的邻接关系,并生成邻接矩阵;
基于预设的卷积神经网络对所述邻接矩阵进行特征提取,得到节点顺序向量;
将所述结构感知向量以及所述节点顺序向量进行拼接处理,得到所述流程图的第一向量。
所述第二向量生成模块40,被配置为:基于所述加密数据的灰度级生成灰度图像,并确定所述灰度图像的第二向量。具体执行以下步骤:
确定所述加密数据的灰度级;
基于所述灰度级对所述加密数据进行分组处理,并得到分组处理后的加密数据;
基于预设的进制数值对所述分组处理后的加密数据进行进制转换,得到进制转换后的加密数据;
基于所述进制转换后的加密数据生成灰度图像;
对所述灰度图像进行特征提取,并得到所述灰度图像的特征提取图;
基于所述第一向量的维度信息对所述特征提取图进行维度调整,并得到调整后的特征提取图;
确定所述调整后的特征提取图的第二向量。
所述密码算法识别模块50,被配置为:基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别。具体执行以下步骤:
将所述第一向量以及所述第二向量进行拼接处理,并得到第三向量;
基于预设的激活函数计算所述第三向量的权重值;
基于所述权重值对所述第一向量以及所述第二向量进行加权求和处理,并得到识别向量;
基于所述识别向量对所述加密数据的加密算法进行识别。
基于同一技术构思,与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上任意一实施例所述的二进制加密算法的识别方法。
图3示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的二进制加密算法的识别方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一技术构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的二进制加密算法的识别方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的二进制加密算法的识别方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种二进制加密算法的识别方法,其特征在于,包括:
获取加密数据;
对所述加密数据进行反汇编处理,得到反汇编处理后的加密数据;
基于所述反汇编处理后的加密数据生成流程图,并确定所述流程图的第一向量;
基于所述加密数据的灰度级生成灰度图像,并确定所述灰度图像的第二向量;
基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别。
2.根据权利要求1所述的方法,其特征在于,所述确定所述流程图的第一向量,包括:
基于所述流程图中的基本块的语义信息,得到所述流程图的结构感知向量;
基于所述流程图中的基本块的邻接关系,得到所述流程图的节点顺序向量;
将所述结构感知向量以及所述节点顺序向量进行拼接处理,得到所述流程图的第一向量。
3.根据权利要求2所述的方法,其特征在于,所述获取所述流程图中基本块的语义信息,并生成所述流程图的结构感知向量,包括:
提取所述反汇编处理后的加密数据的语义信息;
基于所述语义信息对所述流程图中的基本块进行替换处理,并生成结构感知图;
对所述结构感知图进行特征提取,得到结构感知向量。
4.根据权利要求2所述的方法,其特征在于,所述获取所述流程图中基本块的邻接关系,并生成所述流程图的节点顺序向量,包括:
获取所述流程图中的基本块间的邻接关系,并生成邻接矩阵;
基于预设的卷积神经网络对所述邻接矩阵进行特征提取,得到节点顺序向量。
5.根据权利要求1所述的方法,其特征在于,所述基于所述加密数据的灰度级生成灰度图像,包括:
确定所述加密数据的灰度级;
基于所述灰度级对所述加密数据进行分组处理,并得到分组处理后的加密数据;
基于预设的进制数值对所述分组处理后的加密数据进行进制转换,得到进制转换后的加密数据;
基于所述进制转换后的加密数据生成灰度图像。
6.根据权利要求5所述的方法,其特征在于,所述确定所述灰度图像的第二向量,包括:
对所述灰度图像进行特征提取,并得到所述灰度图像的特征提取图;
基于所述第一向量的维度信息对所述特征提取图进行维度调整,并得到调整后的特征提取图;
确定所述调整后的特征提取图的第二向量。
7.根据权利要求1所述的方法,其特征在于,所述基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别,包括:
将所述第一向量以及所述第二向量进行拼接处理,并得到第三向量;
基于预设的激活函数计算所述第三向量的权重值;
基于所述权重值对所述第一向量以及所述第二向量进行加权求和处理,并得到识别向量;
基于所述识别向量对所述加密数据的加密算法进行识别。
8.一种二进制加密算法的识别装置,其特征在于,包括:
数据获取模块,被配置为:获取加密数据;
反汇编处理模块,被配置为:对所述加密数据进行反汇编处理,得到反汇编处理后的加密数据;
第一向量生成模块,被配置为:基于所述反汇编处理后的加密数据生成流程图,并确定所述流程图的第一向量;
第二向量生成模块,被配置为:基于所述加密数据的灰度级生成灰度图像,并确定所述灰度图像的第二向量;
密码算法识别模块,被配置为:基于所述第一向量以及所述第二向量对所述加密数据的加密算法进行识别。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310416952.0A CN116644732A (zh) | 2023-04-18 | 2023-04-18 | 二进制加密算法的识别方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310416952.0A CN116644732A (zh) | 2023-04-18 | 2023-04-18 | 二进制加密算法的识别方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116644732A true CN116644732A (zh) | 2023-08-25 |
Family
ID=87617751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310416952.0A Pending CN116644732A (zh) | 2023-04-18 | 2023-04-18 | 二进制加密算法的识别方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116644732A (zh) |
-
2023
- 2023-04-18 CN CN202310416952.0A patent/CN116644732A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108985066B (zh) | 一种智能合约安全漏洞检测方法、装置、终端及存储介质 | |
CN112800427B (zh) | webshell检测方法、装置、电子设备和存储介质 | |
RU2722692C1 (ru) | Способ и система выявления вредоносных файлов в неизолированной среде | |
CN112085056B (zh) | 目标检测模型生成方法、装置、设备及存储介质 | |
CN109976999B (zh) | 测试用例覆盖率的度量方法和度量装置 | |
CN111429482A (zh) | 目标跟踪方法、装置、计算机设备和存储介质 | |
EP3850517A1 (en) | Bit-level data generation and artificial intelligence techniques and architectures for data protection | |
CN112527674B (zh) | Ai框架的安全评测方法、装置、设备及存储介质 | |
CN117319091B (zh) | 基于深度学习的企业软件网络安全漏洞检测方法及系统 | |
CN116861431B (zh) | 基于多通道图像和神经网络的恶意软件分类方法及系统 | |
JP2024518695A (ja) | ユーザ入力ベースのメディアアイテムにおける気を散らすものの除去 | |
CN116915442A (zh) | 漏洞测试方法、装置、设备和介质 | |
CN113360911A (zh) | 恶意代码同源分析方法、装置、计算机设备和存储介质 | |
CN105825084B (zh) | 用于对具有图像的对象进行匹配检测的方法 | |
CN115630364A (zh) | 基于多维度可视化分析的Android恶意软件检测方法及系统 | |
CN111753729A (zh) | 一种假脸检测方法、装置、电子设备及存储介质 | |
CN114579965A (zh) | 一种恶意代码的检测方法、装置及计算机可读存储介质 | |
CN116644732A (zh) | 二进制加密算法的识别方法、装置、电子设备及存储介质 | |
WO2022237365A1 (en) | Multivariate malware detection methods and systems | |
CN113051153B (zh) | 一种应用软件漏洞扫描方法及相关设备 | |
CN114741697A (zh) | 恶意代码分类方法、装置、电子设备和介质 | |
CN114706589A (zh) | 一种重复代码扫描方法、装置和电子设备 | |
CN113127858A (zh) | 异常检测模型训练方法、异常检测方法及装置 | |
Ahn et al. | Data embedding scheme for efficient program behavior modeling with neural networks | |
CN113553586A (zh) | 病毒检测方法、模型训练方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |