CN114064005A - 基于软件基因的编程语言类型识别方法和装置 - Google Patents
基于软件基因的编程语言类型识别方法和装置 Download PDFInfo
- Publication number
- CN114064005A CN114064005A CN202111365926.7A CN202111365926A CN114064005A CN 114064005 A CN114064005 A CN 114064005A CN 202111365926 A CN202111365926 A CN 202111365926A CN 114064005 A CN114064005 A CN 114064005A
- Authority
- CN
- China
- Prior art keywords
- executable file
- gene
- software
- genome
- target genes
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Apparatus Associated With Microorganisms And Enzymes (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了基于软件基因的编程语言类型识别方法和装置,涉及数据处理的技术领域,包括:获取多种编程语言的可执行文件;利用软件基因测序技术从可执行文件中提取出可执行文件的软件基因组;基于可执行文件的软件基因组,构建判别器;在获取到待识别可执行文件之后,将待识别可执行文件转化为待识别基因组,并将待识别基因组输入判别器,确定出待识别可执行文件的编程语言类型,解决了现有技术中对二进制可执行文件编程语言类型的识别准确度和效率较低的技术问题。
Description
技术领域
本发明涉及数据处理的技术领域,尤其是涉及一种基于软件基因的编程语言类型识别方法和装置。
背景技术
基于Yara规则的文件编程语言类型识别,需要对待检样本可执行文件进行逆向分析,而大多逆向分析需要人工来完成,工作量大,时间损耗多;需要建立庞大又繁杂的Yara规则库,一旦规则的缺失,漏判、误判的几率会更高,效率低。
基于后缀名的文件编程语言类型识别,尽管可以通过识别“.c”、“.cpp”、“.py”、“.java”、“.go”等后缀名快速识别文件编程语言类型,但是非常不可靠,由于更改后缀名极其容易,很难验证其是否有被篡改过后缀名。
同理,基于魔数信息的文件编程语言类型识别,魔数信息尽管很简单、快速,但是不是所有文件中都会显示或者显示正确的信息。
而基于内容的文件编程语言类型识别方法,并非所有类型的文件其字节值分布都具有明显的统计特征,并且在有些情况下,相同类型的字节值频率分布差异很大,而不同类型的又非常相似,所以这类方法的识别正确率普遍较低。当文件较大,文件数量较多时,计算量过大,需要耗费大量的时间,不适用于大数据量、实时反馈结果的场合。
针对上述问题,还未提出有效的解决方案。
发明内容
有鉴于此,本发明的目的在于提供一种基于软件基因的编程语言类型识别方法和装置,以缓解了现有技术中对二进制可执行文件编程语言类型的识别准确度和效率较低的技术问题。
第一方面,本发明实施例提供了一种基于软件基因的编程语言类型识别方法,包括:获取多种编程语言的可执行文件;利用软件基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;基于所述可执行文件的软件基因组,构建判别器;在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型。
进一步地,基于所述多种编程语言的软件基因组,构建判别器,包括:对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果;基于所述统计结果,计算所述目标基因的权重,并基于所述目标基因的权重对所述目标基因进行排序,得到排序结果;利用预设算法和最终基因进行处理,得到所述判别器,其中,所述最终基因为所述排序结果中权重值最大的前预设数量个目标基因。
进一步地,对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果,包括:利用专家模型,确定出所述可执行文件的软件基因组中的有效基因,并将所述有效基因确定为所述目标基因;对所述有效基因进行基因频率统计,得到统计结果。
进一步地,利用预设算法和最终基因进行处理,得到所述判别器,包括,获取样本可执行文件合集;基于所述排序结果,确定各个最终基因对所述样本可执行文件集合的覆盖率,将所述覆盖率大于预设阈值的最终基因确定为中间基因,并删除所述中间基因覆盖的样本可执行文件,得到目标样本可执行文件,直至所述目标样本可执行文件为空,则将所述中间基因的集合确定为所述判别器。
第二方面,本发明实施例中还提供了一种基于软件基因的编程语言类型识别装置,包括:获取单元,提取单元,构建单元和识别单元,其中,所述获取单元,用于获取多种编程语言的可执行文件;所述提取单元,用于利用软件基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;所述构建单元,用于基于所述可执行文件的软件基因组,构建判别器;所述识别单元,用于在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型。
进一步地,所述构建单元,用于:对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果;基于所述统计结果,计算所述目标基因的权重,并基于所述目标基因的权重对所述目标基因进行排序,得到排序结果;利用预设算法和最终基因进行处理,得到所述判别器,其中,所述最终基因为所述排序结果中权重值最大的前预设数量个目标基因。
进一步地,所述构建单元,用于:利用专家模型,确定出所述可执行文件的软件基因组中的有效基因,并将所述有效基因确定为所述目标基因;对所述有效基因进行基因频率统计,得到统计结果。
进一步地,所述构建单元,用于获取样本可执行文件合集;基于所述排序结果,确定各个最终基因对所述样本可执行文件集合的覆盖率,将所述覆盖率大于预设阈值的最终基因确定为中间基因,并删除所述中间基因覆盖的样本可执行文件,得到目标样本可执行文件,直至所述目标样本可执行文件为空,则将所述中间基因的集合确定为所述判别器。
第三方面,本发明实施例还提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储支持处理器执行上述第一方面中所述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
第四方面,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序。
在本发明实施例中,通过获取多种编程语言的可执行文件;利用软件基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;基于所述可执行文件的软件基因组,构建判别器;在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型,达到了通过利用软件基因识别二进制可执行文件编程语言类型的目的,进而解决了现有技术中对二进制可执行文件编程语言类型的识别准确度和效率较低的技术问题,从而实现了提升对二进制可执行文件编程语言类型的识别准确度和效率的技术效果。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于软件基因的编程语言类型识别方法的流程图;
图2为本发明实施例提供的一种基于软件基因的编程语言类型识别装置的示意图;
图3为本发明实施例提供的一种电子设备的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
根据本发明实施例,提供了一种基于软件基因的编程语言类型识别方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种基于软件基因的编程语言类型识别方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取多种编程语言的可执行文件;
步骤S104,利用基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;
步骤S106,基于所述可执行文件的软件基因组,构建判别器;
步骤S108,在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型。
在本发明实施例中,通过获取多种编程语言的可执行文件;利用基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;基于所述可执行文件的软件基因组,构建判别器;在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型,达到了通过利用软件基因识别二进制可执行文件编程语言类型的目的,进而解决了现有技术中对二进制可执行文件编程语言类型的识别准确度和效率较低的技术问题,从而实现了提升对二进制可执行文件编程语言类型的识别准确度和效率的技术效果。
在本发明实施例中,步骤S106包括如下步骤:
步骤S11,对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果;
步骤S12,基于所述统计结果,计算所述目标基因的权重,并基于所述目标基因的权重对所述目标基因进行排序,得到排序结果;
步骤S13,利用预设算法和最终基因进行处理,得到所述判别器,其中,所述最终基因为所述排序结果中权重值最大的前预设数量个目标基因。
在本发明实施例中,首先,利用专家模型,确定出所述可执行文件的软件基因组中的有效基因,并将所述有效基因确定为所述目标基因;对目标基因进行基因频率统计,得到统计结果。
具体的,由于每类编程语言的可执行文件中,在可执行文件编译的过程中,会包含编程语言的编译代码和逻辑语法树等特征,该特征遗传于语言的底层功能或信息,并不是获取的所有软件基因组都携带编程语言类型的遗传信息,需要对其进行过滤。通过专家模型,保留软件基因组中含有编程语言的底层功能或信息的有效基因,并对所述可执行文件的有效基因进行权重值排序。先统计基因频率,结果如式(1)-(3)所示:
Genes=[genes,Frequency] (1)
genes=[g0,g1,g2,...,gn]T (2)
Frequency=[f0,f1,f2,...,fn]T (3)
其中,gi(i=0,1,2,...n),表示每一条携带信息的有效基因;
genes,表示gi(i=0,1,2,...n)的集合;
fi(i=0,1,2,...n),表示每一条有效基因的频率;
Frequency,表示fi(i=0,1,2,...n)的集合;
Genes,表示由集合genes和Frequency所组成的二维矩阵。
然后,计算目标基因gi的权重:
wi=Li*ηifi i=0,1,2,...,n (4)
式(4)中,Li表示该基因的分词后的长度系数,ηi表示该基因的频率fi所对应的经验系数,该经验系数源自于专家数据库。
w=[w0,w1,w2,...,wn] (8)
上式(4)-(8)中,w表示基因权重wi(i=0,1,2,...n)的集合,μ表示w的均值,σ表示w的方差,W表示目标基因的权重集合。
接着,根据W对目标基因进行降序排列,得到排序结果。
最后,从排序结果中获取到权重值最大的前预设数量个目标基因(,优选的,前预设数量个目标基因与目标基因之间的比值为10%-20%),根据基因和样本可执行文件合集之间的关系,通过改进的贪心算法,获取一个目标基因的最小集合(即,基因数量最少的中间基因集合),并确保该最小集合可以覆盖最多的样本可执行文件或者所有样本可执行文件。
需要说明的是,判别器的表达式为CENE=[g0,g1,g2,...,gk]T。
在得到判别器和待识别可执行文件之后,将待识别可执行文件转化为待识别基因组,并将待识别基因组输入判别器,确定出待识别可执行文件的编程语言类型。
具体的,Sample=[s0,s1,s2,...,sm]T (10)
如式(10)所示,Sample表示待识别可执行文件的软件基因组,si(i=0,1,2,...,m)表示待识别可执行文件的基因。
Result=Sample∩GENE (11)
如式(11)所示,判别器将待识别可执行文件的基因与判别器做交集,结果用Result表示。当Result=GENE时,该待识别可执行文件的编程语言类型与该基因组所关联的文件编程语言类型一致。
本发明实施例利用生成的编程语言软件基因组,可以完美保留原始文件的信息特征,进而从基因里可以获取到完善的关联文件的语言类型遗传性信息,保证了输出文件编程语言类型的准确性,从而避免了基于后缀名和基于魔数信息的文件编程语言类型识别方法的难验证和验不准的缺点。
本发明实施例提出了基于软件基因组判别文件编程语言的模型,减少无效基因带来的副作用,大大提升效率,相较于传统方法,在速度上有了明显的提升;不仅如此,该算法还可针对特殊样本提取其独有基因,实现自动化专项识别,更智能地解放人工,这一点也打破了传统方法的局限性。
本发明实施例基于软件基因判别器来识别文件编程语言类型,精简了基于Yara规则的文件编程语言类型识别方法的复杂流程,同时识别的正确率也远高于基于内容的文件编程语言类型识别方法。
实施例二:
本发明实施例还提供了一种基于软件基因的编程语言类型识别装置,该二进制可执行文件编程语言类型识别装置用于执行本发明实施例上述内容所提供的二进制可执行文件编程语言类型识别方法,以下是本发明实施例提供的二进制可执行文件编程语言类型识别装置的具体介绍。
如图2所示,图2为上述二进制可执行文件编程语言类型识别装置的示意图,该二进制可执行文件编程语言类型识别装置包括:获取单元10,提取单元20,构建单元30和识别单元40,其中,所述获取单元,用于获取多种编程语言的可执行文件;所述提取单元,用于利用基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;所述构建单元,用于基于所述可执行文件的软件基因组,构建判别器;所述识别单元,用于在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型。
优选的,所述构建单元,用于:对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果;基于所述统计结果,计算所述目标基因的权重,并基于所述目标基因的权重对所述目标基因进行排序,得到排序结果;利用预设算法和最终基因进行处理,得到所述判别器,其中,所述最终基因为所述排序结果中权重值最大的前预设数量个目标基因。
优选的,所述构建单元,用于:利用专家模型,确定出所述可执行文件的软件基因组中的有效基因,并将所述有效基因确定为所述目标基因;对所述有效基因进行基因频率统计,得到统计结果。
优选的,所述构建单元,用于:获取样本可执行文件合集;基于所述排序结果,确定各个最终基因对所述样本可执行文件集合的覆盖率,将所述覆盖率大于预设阈值的最终基因确定为中间基因,并删除所述中间基因覆盖的样本可执行文件,得到目标样本可执行文件,直至所述目标样本可执行文件为空,则将所述中间基因的集合确定为所述判别器。
实施例三:
本发明实施例还提供了一种电子设备,包括存储器以及处理器,所述存储器用于存储支持处理器执行上述实施例一中所述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
参见图3,本发明实施例还提供一种电子设备100,包括:处理器50,存储器51,总线52和通信接口53,所述处理器50、通信接口53和存储器51通过总线52连接;处理器50用于执行存储器51中存储的可执行模块,例如计算机程序。
其中,存储器51可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口53(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
总线52可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器51用于存储程序,所述处理器50在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的装置所执行的方法可以应用于处理器50中,或者由处理器50实现。
处理器50可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器50中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器50可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现成可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器51,处理器50读取存储器51中的信息,结合其硬件完成上述方法的步骤。
实施例四:
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例一中所述方法的步骤。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于软件基因的编程语言类型识别方法,其特征在于,包括:
获取多种编程语言的可执行文件;
利用软件基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;
基于所述可执行文件的软件基因组,构建判别器;
在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型。
2.根据权利要求1所述的方法,其特征在于,基于所述多种编程语言的软件基因组,构建判别器,包括:
对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果;
基于所述统计结果,计算所述目标基因的权重,并基于所述目标基因的权重对所述目标基因进行排序,得到排序结果;
利用预设算法和最终基因进行处理,得到所述判别器,其中,所述最终基因为所述排序结果中权重值最大的前预设数量个目标基因。
3.根据权利要求2所述的方法,其特征在于,对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果,包括:
利用专家模型,确定出所述可执行文件的软件基因组中的有效基因,并将所述有效基因确定为所述目标基因;
对所述有效基因进行基因频率统计,得到统计结果。
4.根据权利要求2所述的方法,其特征在于,利用预设算法和最终基因进行处理,得到所述判别器,包括:
获取样本可执行文件合集;
基于所述排序结果,确定各个最终基因对所述样本可执行文件集合的覆盖率,将所述覆盖率大于预设阈值的最终基因确定为中间基因,并删除所述中间基因覆盖的样本可执行文件,得到目标样本可执行文件,直至所述目标样本可执行文件为空,则将所述中间基因的集合确定为所述判别器。
5.一种基于软件基因的编程语言类型识别装置,其特征在于,包括:获取单元,提取单元,构建单元和识别单元,其中,
所述获取单元,用于获取多种编程语言的可执行文件;
所述提取单元,用于利用软件基因测序技术从所述可执行文件中提取出所述可执行文件的软件基因组;
所述构建单元,用于基于所述可执行文件的软件基因组,构建判别器;
所述识别单元,用于在获取到待识别可执行文件之后,将所述待识别可执行文件转化为待识别基因组,并将所述待识别基因组输入所述判别器,确定出所述待识别可执行文件的编程语言类型。
6.根据权利要求5所述的装置,其特征在于,所述构建单元,用于:
对所述多种编程语言的软件基因组进行过滤,得到所述多种编程语言的目标基因,并对所述目标基因进行基因频率统计,得到统计结果;
基于所述统计结果,计算所述目标基因的权重,并基于所述目标基因的权重对所述目标基因进行排序,得到排序结果;
利用预设算法和最终基因进行处理,得到所述判别器,其中,所述最终基因为所述排序结果中权重值最大的前预设数量个目标基因。
7.根据权利要求6所述的装置,其特征在于,所述构建单元,用于:
利用专家模型,确定出所述可执行文件的软件基因组中的有效基因,并将所述有效基因确定为所述目标基因;
对所述有效基因进行基因频率统计,得到统计结果。
8.根据权利要求6所述的装置,其特征在于,所述构建单元,用于:
获取样本可执行文件合集;
基于所述排序结果,确定各个最终基因对所述样本可执行文件集合的覆盖率,将所述覆盖率大于预设阈值的最终基因确定为中间基因,并删除所述中间基因覆盖的样本可执行文件,得到目标样本可执行文件,直至所述目标样本可执行文件为空,则将所述中间基因的集合确定为所述判别器。
9.一种电子设备,其特征在于,包括存储器以及处理器,所述存储器用于存储支持处理器执行权利要求1至4任一项所述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
10.一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特征在于,计算机程序被处理器运行时执行上述权利要求1至4任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111365926.7A CN114064005B (zh) | 2021-11-18 | 2021-11-18 | 基于软件基因的编程语言类型识别方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111365926.7A CN114064005B (zh) | 2021-11-18 | 2021-11-18 | 基于软件基因的编程语言类型识别方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114064005A true CN114064005A (zh) | 2022-02-18 |
CN114064005B CN114064005B (zh) | 2023-05-12 |
Family
ID=80277804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111365926.7A Active CN114064005B (zh) | 2021-11-18 | 2021-11-18 | 基于软件基因的编程语言类型识别方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114064005B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165881A1 (en) * | 2004-01-23 | 2005-07-28 | Pipelinefx, L.L.C. | Event-driven queuing system and method |
US20180081653A1 (en) * | 2016-09-21 | 2018-03-22 | International Business Machines Corporation | Accelerating software builds |
CN108171059A (zh) * | 2017-12-26 | 2018-06-15 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的恶意代码检测与识别方法及装置 |
CN108932430A (zh) * | 2018-07-02 | 2018-12-04 | 北京大学 | 一种基于软件基因技术的恶意软件检测方法 |
CN109508546A (zh) * | 2018-11-12 | 2019-03-22 | 杭州安恒信息技术股份有限公司 | 一种基于软件基因的软件同源性分析方法和装置 |
WO2019143412A1 (en) * | 2018-01-19 | 2019-07-25 | Umajin Inc. | Configurable server kit |
CN110704103A (zh) * | 2019-09-04 | 2020-01-17 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的二进制文件语义相似性比较方法及装置 |
US10678917B1 (en) * | 2017-11-29 | 2020-06-09 | NortonLifeLock Inc. | Systems and methods for evaluating unfamiliar executables |
CN112699379A (zh) * | 2020-12-31 | 2021-04-23 | 上海戎磐网络科技有限公司 | 一种基于软件基因的固件漏洞扫描系统和方法 |
CN112698837A (zh) * | 2020-12-31 | 2021-04-23 | 上海戎磐网络科技有限公司 | 基于软件基因的动态行为与二进制代码匹配方法和装置 |
CN112699371A (zh) * | 2020-12-31 | 2021-04-23 | 上海戎磐网络科技有限公司 | 一种动态行为特征与软件基因匹配系统和方法 |
US20210279303A1 (en) * | 2020-03-06 | 2021-09-09 | International Business Machines Corporation | Software intelligence as-a-service |
-
2021
- 2021-11-18 CN CN202111365926.7A patent/CN114064005B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050165881A1 (en) * | 2004-01-23 | 2005-07-28 | Pipelinefx, L.L.C. | Event-driven queuing system and method |
US20180081653A1 (en) * | 2016-09-21 | 2018-03-22 | International Business Machines Corporation | Accelerating software builds |
US10678917B1 (en) * | 2017-11-29 | 2020-06-09 | NortonLifeLock Inc. | Systems and methods for evaluating unfamiliar executables |
CN108171059A (zh) * | 2017-12-26 | 2018-06-15 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的恶意代码检测与识别方法及装置 |
WO2019143412A1 (en) * | 2018-01-19 | 2019-07-25 | Umajin Inc. | Configurable server kit |
CN108932430A (zh) * | 2018-07-02 | 2018-12-04 | 北京大学 | 一种基于软件基因技术的恶意软件检测方法 |
CN109508546A (zh) * | 2018-11-12 | 2019-03-22 | 杭州安恒信息技术股份有限公司 | 一种基于软件基因的软件同源性分析方法和装置 |
CN110704103A (zh) * | 2019-09-04 | 2020-01-17 | 中国人民解放军战略支援部队信息工程大学 | 基于软件基因的二进制文件语义相似性比较方法及装置 |
US20210279303A1 (en) * | 2020-03-06 | 2021-09-09 | International Business Machines Corporation | Software intelligence as-a-service |
CN112699379A (zh) * | 2020-12-31 | 2021-04-23 | 上海戎磐网络科技有限公司 | 一种基于软件基因的固件漏洞扫描系统和方法 |
CN112698837A (zh) * | 2020-12-31 | 2021-04-23 | 上海戎磐网络科技有限公司 | 基于软件基因的动态行为与二进制代码匹配方法和装置 |
CN112699371A (zh) * | 2020-12-31 | 2021-04-23 | 上海戎磐网络科技有限公司 | 一种动态行为特征与软件基因匹配系统和方法 |
Non-Patent Citations (10)
Title |
---|
AMIR H. GANDOMI等: "Software review: the GPTIPS platform", 《GENETIC PROGRAMMING AND EVOLVABLE MACHINE》 * |
PAULO: "Towards the Conceptualization of Refinement Typed Genetic Programming", 《ULISBOA》 * |
WILLIAM B. LANGDON等: "Optimizing Existing Software with Genetic Programming", 《IEEE TRANSACTIONS ON EVOLUTIONARY COMPUTATION》 * |
刘旭: "从"软件基因"视角看物联网网络威胁攻击防御的基本面", 《网信军民融合》 * |
刘泽豪等: "软件基因角度下工业互联网安全分析", 《自动化博览》 * |
张敬言;: "计算机编程语言及其工作过程分析" * |
杨宏宇等: "基于改进随机森林算法的Android恶意软件检测", 《通信学报》 * |
章丽娟: "软件基因——赋能空间信息安全助力数字产业发展", 《网信军民融合》 * |
董朝贤;: "不同编程语言对计算机应用软件的影响" * |
薄晓琳;: "基本计算机编程语言对比与选用技巧探析" * |
Also Published As
Publication number | Publication date |
---|---|
CN114064005B (zh) | 2023-05-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108426B (zh) | 自然语言提问的理解方法、装置及电子设备 | |
CN111695593A (zh) | 基于XGBoost的数据分类方法、装置、计算机设备及存储介质 | |
WO2022121163A1 (zh) | 用户行为倾向识别方法、装置、设备及存储介质 | |
CN107423613A (zh) | 依据相似度确定设备指纹的方法、装置及服务器 | |
WO2020215675A1 (zh) | 医疗数据库的构建方法、装置、计算机设备和存储介质 | |
CN110827924A (zh) | 基因表达数据的聚类方法、装置、计算机设备及存储介质 | |
CN111785383B (zh) | 数据处理方法及相关设备 | |
CN110866259A (zh) | 一种基于多维度数据计算安全隐患评分方法和系统 | |
CN113315851A (zh) | 域名检测方法、装置及存储介质 | |
CN111291824A (zh) | 时间序列的处理方法、装置、电子设备和计算机可读介质 | |
CN112612887A (zh) | 日志处理方法、装置、设备和存储介质 | |
CN113436725A (zh) | 数据处理方法、系统、计算机设备及计算机可读存储介质 | |
CN115729817A (zh) | 测试用例库的生成及优化方法、装置、电子设备和存储介质 | |
CN106960133B (zh) | 一种疾病预测方法及装置 | |
CN113946566A (zh) | Web系统指纹库的构建方法、装置和电子设备 | |
CN114064005B (zh) | 基于软件基因的编程语言类型识别方法和装置 | |
CN110852322B (zh) | 感兴趣区域的确定方法及装置 | |
JP6356015B2 (ja) | 遺伝子発現情報解析装置、遺伝子発現情報解析方法、及びプログラム | |
CN113486976B (zh) | 一种地图标注内容的自动分类方法和装置 | |
CN113419951B (zh) | 人工智能模型优化方法、装置、电子设备及存储介质 | |
CN114840207A (zh) | 源代码语言类型检测方法和系统、设备及存储介质 | |
CN117116350B (zh) | Rna测序数据的校正方法、装置、电子设备及存储介质 | |
CN113705227B (zh) | 中文无分词词嵌入模型的构建方法、系统、介质及设备 | |
CN110377592B (zh) | 定量变量到虚拟变量的数据预处理方法、装置及终端设备 | |
CN111159347B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |