CN110263540A - 一种代码标识方法及装置 - Google Patents
一种代码标识方法及装置 Download PDFInfo
- Publication number
- CN110263540A CN110263540A CN201910552684.9A CN201910552684A CN110263540A CN 110263540 A CN110263540 A CN 110263540A CN 201910552684 A CN201910552684 A CN 201910552684A CN 110263540 A CN110263540 A CN 110263540A
- Authority
- CN
- China
- Prior art keywords
- code
- identified
- keyword
- target
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000000605 extraction Methods 0.000 claims abstract description 31
- 239000000284 extract Substances 0.000 claims description 13
- 238000010438 heat treatment Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 abstract description 9
- 230000015654 memory Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- ATJFFYVFTNAWJD-UHFFFAOYSA-N Tin Chemical compound [Sn] ATJFFYVFTNAWJD-UHFFFAOYSA-N 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009194 climbing Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002513 implantation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种代码标识方法及装置,其中,该方法包括:从待标识的代码中提取目标字符串;根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识的代码的目标关键词;根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识。通过这种方法,可以提高代码分析的效率和准确率。
Description
技术领域
本申请涉及计算机,互联网,信息安全技术领域,具体而言,涉及一种代码标识方法及装置。
背景技术
目前,随着网络信息技术的发展,恶意软件已成为危害网络公共安全的主要威胁之一。据瑞星2017年信息安全报告指出,2017年中国共有11.45亿人次被恶意软件感染,有2300万台电脑受到攻击。2017年1至12月新增恶意软件达3310万余个,总数量比2016年同期增长163%。
随着恶意软件数目的爆发式增长,传统的基于特征码与签名的恶意代码分析技术已不能满足新兴的恶意代码检测需求。安全研究人员通过分析大量的恶意代码发现,其中许多新出现的恶意代码是已有恶意代码的变种。恶意代码的编写者通过变形、加壳、多态等技术手段,混淆已有恶意代码的特征,企图逃避安全软件的分析检测。
虽然现有技术中,基于行为的主动防御、虚拟机脱壳等技术可以检测经过变形、加壳的恶意代码,但却不能快速有效地识别代码中所包含的信息,因此,在对恶意代码进行分析时准确率和效率较低。
发明内容
有鉴于此,本申请实施例的目的在于提供一种代码标识方法及装置,能够对恶意代码进行高效、准确的分析。
第一方面,本申请实施例提供了一种代码标识方法,包括:
从待标识的代码中提取目标字符串;
根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识的代码的目标关键词;
根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识。
结合第一方面,本申请实施例提供了第一方面的第一种可能的实施方式,其中,所述从待标识的代码中提取目标字符串之前,所述方法还包括:
判断所述待标识的代码是否加壳;
针对所述待标识的代码有加壳的情况,对所述待标识的代码进行脱壳处理。
结合第一方面,本申请实施例提供了第一方面的第二种可能的实施方式,其中,所述从待标识的代码中提取目标字符串,包括:
从所述待标识的代码中提取关键字符串;所述关键字符串包括:链接和/或路径;
基于所述关键字符串中包括的预设目标符号,从所述关键字符串中提取目标字符串。
结合第一方面的第二种可能的实施方式,本申请实施例提供了第二方面的第三种可能的实施方式,其中,所述从所述待标识的代码中提取关键字符串,包括:
使用正则表达式,匹配所述关键字符串中的目标标志符号;
根据匹配到的所述目标标志符号,提取所述待标识的代码中的链接,和/或,路径,得到所述待标识的代码的关键字符串。
结合第二方面,本申请实施例提供了第二方面的第四种可能的实施方式,其中,所述根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识,包括:
将所述目标关键词与每一个预先设置的关键词集合中所包含的关键词进行匹配,并将匹配成功的关键词所在的集合确定为目标关键词集合;
获取所述目标关键词集合的目标标识;
将所述目标标识以及所述匹配成功的关键词确定为所述待标识的代码的标识。
第二方面,本申请实施例提供了一种代码标识装置,包括:
第一提取模块,用于从待标识的代码中提取目标字符串;
第二提取模块,用于根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识的代码的目标关键词;
标识模块,用于根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识。
结合第二方面,本申请实施例提供了第二方面的第一种可能的实施方式,其中,所述装置还包括:
脱壳处理模块,用于从待标识的代码中提取目标字符串之前,判断所述待标识的代码是否加壳,针对所述待标识的代码有加壳的情况,对所述待标识的代码进行脱壳处理。
结合第二方面,本申请实施例提供了第二方面的第二种可能的实施方式,其中,所述第一提取模块,在从所述待标识的代码中提取目标字符串时,具体用于:
从所述待标识的代码中提取关键字符串;所述关键字符串包括:链接和/或路径;
基于所述关键字符串中包括的预设目标符号,从所述关键字符串中提取目标字符串。
结合第二方面的第二种可能的实施方式,本申请实施例提供了第二方面的第三种可能的实施方式,其中,所述第一提取模块,在从所述待标识的代码中提取关键字符串时,具体用于:
使用正则表达式,匹配所述关键字符串中的目标标志符号;
根据匹配到的所述目标标志符号,提取所述待标识的代码中的链接,和/或,路径,得到所述待标识的代码的关键字符串。
结合第二方面,本申请实施例提供了第二方面的第四种可能的实施方式,其中,所述标识模块,在根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识时,具体用于:
将所述目标关键词与每一个预先设置的关键词集合中所包含的关键词进行匹配,并将匹配成功的关键词所在的集合确定为目标关键词集合;
获取所述目标关键词集合的目标标识;
将所述目标标识以及所述匹配成功的关键词确定为所述待标识的代码的标识。
第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面的任一种可能的实施方式中的步骤。
第四方面,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面的任一种可能的实施方式中的步骤。
本申请实施例提供的代码标识方法及装置,在对代码进行识别时,首先从待标识的代码中提取目标字符串;然后根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识代码的目标关键词;最后根据所述待标识代码的目标关键词,以及至少一个预先设置的关键词集合,对待标识的代码进行标识。通过上述方法,可以准确识别出代码中的关键词,提高了对代码分析的效率和准确率。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种代码标识方法的流程图;
图2示出了本申请实施例所提供的恶意代码识别方法中,从待标识代码中提取目标字符串的流程图;
图3示出了本申请实施例所提供的关键词提取模型获取的方法流程图;
图4示出了本申请实施例所提供的提取待标识代码的目标关键词的流程图;
图5示出了本申请实施例所提供的一种代码标识装置的结构示意图;
图6示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前现有技术中不能快速的对代码中所包含的信息进行识别,基于此,本申请提供的一种代码标识方法及装置,能够对待标识代码进行高效、准确的分析和标识。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种代码标识方法进行详细介绍。
由于待标识代码可能是已有恶意代码的变种,该恶意代码的编写者很可能对其进行了加壳,因此本申请实施例提供的代码标识方法在提取待标识代码的进行表示之前,需要判断待标识代码是否加壳;针对待标识代码有加壳的情况,对待标识代码进行脱壳处理。
此处,加壳的全称是可执行程序资源压缩,压缩后的程序可以直接运行。加壳的另一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是隐藏程序真正的入口点,防止被破解。大多数恶意代码就是基于此原理。脱壳是指去掉程序所加的壳。
本申请实施例具体采用下述方式判断待标识代码是否加壳:
通过编写脚本计算待标识代码中数据的信息熵对待标识代码是否加壳进行判断。
在恶意代码中,代码主要分为以下这几个段:执行代码段,通常以.text(Microsoft)或CODE(Borland)命名;数据段,通常以.data、.rdata或.bss(Microsoft)、DATA(Borland)命名;调试信息段,通常以.debug命名;资源段,通常以.rsrc命名;导出表,通常以.edata命名;导入表,通常以.idata命名;
可选地,为了保证信息熵计算的准确性,将代码执行段、数据段(除重定向数据、尾部全0的数据)、以及调试信息段作为用于计算信息熵的数据。
最后将得到的信息熵与预设的信息熵阈值比较,因为如果代码加壳,信息熵会变大,因此当得到的信息熵大于预设的信息熵阈值,则判断结果为加壳,当得到的信息熵不大于预设的信息熵阈值,则判断结果为未加壳。
例如,在本申请的一个具体实施例中,当预设的信息熵阈值设为6.70时,判断错误率小于百分之十。
本申请实施例,针对待标识代码有加壳的情况,具体采用下述方式对待标识代码进行脱壳处理:
可选地,可以首先通过查壳软件判断所加的壳的种类,例如著名查壳工具:可移植的可执行文件标识符(Portable Executable Identifier,PEiD),PEiD查壳工具可以检出壳的种类,然后根据壳的种类编写对应的手工脚本进行脱壳。
下面,将以待标识代码为恶意代码的应用场景,对本申请实施例所提供的代码标识方法展开介绍。
参见图1所示,本申请实施例所提供的代码标识方法包括S101~S103:
S101:从待标识代码中提取目标字符串。
具体实现的时候,参见图2所示,本申请实施例具体采用下述方式从待标识代码中提取目标字符串:
S201:从待标识代码中提取关键字符串。
在一种可能的情况下,恶意代码的目的可能是将被入侵的计算机跳转到一个远程的恶意网站,此时,恶意代码中就包括了一个恶意网站的链接;
在另一种可能的情况下,恶意代码的目的可能是将被入侵的计算机中的信息存储到某个路径中,此时,恶意代码中就包括了一个路径。
因此,本申请实施例首先提取待标识代码中的关键字符串,关键字符串包括:链接和/或路径。
如果从多个恶意代码中提取的链接和/或路径的相似度比较高,则这些恶意代码属于同一类。
具体实现的时候,本申请实施例采用下述方式从待标识代码中提取关键字符串:
使用正则表达式匹配关键字符串中的目标标志符号;根据匹配到的目标标志符号,提取待标识代码中的链接,和/或,路径,得到待标识代码的关键字符串。
此处,链接中的目标标志符号包括https或者http等,路径的中的目标标志符号包括:\或\等。
例如,有这样一句话:Its after 12noon,do you know where your rooftopsare?http://tinyurl.com/NYCRooftops,那么通过下面的正则表达式,就可以匹配到目标标志符号http,进而提取上面那句话中的链接。
使用python软件编写的正则表达式为:
pattern=re.compile(r'http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+')
同样的,也是通过正则表达式匹配路径的中的目标标志符号,进而提取到恶意代码中的路径。在此不再进行正则表达式的举例。
S202:基于关键字符串中包括的预设目标符号,从关键字符串中提取目标字符串。
根据现在所公开的恶意代码中可以得到,路径或者链接中的预设目标符号包括“:”、“(”、“)”、“”、“%”、“?”、“//”、“/”、“.”等,基于关键字符串中包括的预设目标符号,从关键字符串中提取目标字符串。
此处,把路径或者链接中预设目标符号当成分隔符,分隔符把路径或者链接分隔成的几段字符串就是本申请实施例中的目标字符串。
例如,链接http://tinyurl.com/NYCRooftops中包括的预设目标符号有“:”、“//”、“.”、“/”,因此,该链接中包括的目标字符串为:“http”、“tinyurl”、“com”、“NYCRooftops”。
S102:根据预先训练好的关键词提取模型,从目标字符串中提取待标识的代码的目标关键词。
S103:根据待标识的代码的目标关键词,以及至少一个预先设置的关键词集合,对待标识的代码进行标识。
具体实施中,参见图3所示,本申请实施例采用下述步骤获得关键词提取模型:
S301:获取多个样本词汇。
其中,多个样本词汇包括从预设平台获取的多个词汇、以及初始的恶意代码数据库中包括的样本关键词。
可选地,从预设平台获取的多个词汇可以为多个英文单词或其他词汇,此处,获取的样本词汇可以是特定领域的词汇,也可以是随机获取不分领域。获取的时候可以通过爬虫、爬取工具等技术从预设平台爬取。在爬取词汇的时候,可以不做任何限制的进行爬取,也即,只要是预设平台出现的词汇,就可以作为爬取的词汇。
S302:将多个样本词汇输入至预先构建的N元模型中,对N元模型进行训练,得到初始的关键词提取模型。
其中,初始的关键词提取模型包括多个由N个字符组成的样本字符串对应的概率。
需要注意的是,从预设平台获取的多个词汇的数量可能远远大于恶意代码数据库中包括的样本关键词的数量,如果直接用这些样本词汇取训练N元模型,可能会导致样本关键词在模型训练过程中起到的作用比较小,而样本关键词往往是需要在模型训练过程中起比较大的作用。因此需要对样本关键词进行数据扩增,例如在输入至预先构建的N元模型中时,将样本关键词输入多次,就将对样本关键词进行了数据扩增。
此处,N元模型(N-gram模型)是一种常用的统计语言模型,通过对N元模型进行训练,训练的结果是得到一个高维矩阵,将这个高维矩阵作为初始的关键词提取模型;高维矩阵中包括多个由N个字符组成的字符串对应的概率。通过这个高维矩阵,可以从一个由很多字符组成的字符串中提取到有意义的字符串。
下面,具体介绍步骤S102和步骤S103的实施方式:
步骤S102在具体实现的时候:参见图4所示,本申请实施例采用下述步骤提取待标识代码的目标关键词:
S401:将各个目标字符串划分成至少一个由相邻的N个字符组成的目标子字符串。
例如,步骤S202中,从一个链接中提取的第一目标字符串为:“http”、“tinyurl”、“com”、“NYCRooftops”,如果N为3,则将各个第一目标字符串划分成至少一个由相邻的3个字符组成的第一目标子字符串。将上述第一目标字符串划分成至少一个由相邻的3个字符组成的第一目标子字符串的结果为:第一目标字符串“http”对应的第一目标子字符串为:“htt”、“ttp”,第一目标字符串“tinyurl”对应的第一目标子字符串为:“tin”、“iny”、“nyu”、“yur”、“url”,第一目标字符串“com”对应的第一目标子字符串为:“com”,第一目标字符串“NYCRooftops”对应的第一目标子字符串为:“NYC”、“YCR”、“CRo”、“Roo”、“oof”、“oft”、“fto”、“top”、“ops”。
S402:将目标子字符串,输入至预先训练好的关键词提取模型中,确定与目标子字符串对应的样本字符串,并将确定的样本字符串对应的概率作为该目标子字符串对应的概率。
S403:根据各个目标字符串对应的各个目标子字符串对应的概率,以及预设概率阈值,获取待标识代码的目标关键词。
例如,假如预设概率阈值为0.5,假如从待标识代码中获取的关键字符串为步骤S202中的链接,通过步骤S402得到链接中的目标字符串“http”对应的目标子字符串“htt”的概率为0.8,“ttp”的概率为0.7,那么说明“http”是有意义的字符串,那么,从目标字符串“http”中获取的待标识代码的目标关键词为“http”;
假如目标字符串“tinyurl”对应的目标子字符串“tin”的概率为0.9,“iny”的概率为0.8,“nyu”的概率为0.3,“yur”的概率为0.8,“url”的概率为0.6,那么说明“tiny”和“yurl”是有意义的字符串,那么,从目标字符串“tinyurl”中获取的待标识代码的目标关键词为“tiny”和“yurl”。
通过同样的方式可以得到目标字符串“com”和“NYCRooftops”中有意义的字符串,假如目标字符串“com”中有意义的字符串为“com”,目标字符串“NYCRooftops”中有意义的字符串为“Rooftops”。那么,从目标字符串“com”中获取的待标识代码的目标关键词为“com”,从目标字符串“NYCRooftops”中获取的待标识代码的目标关键词为“Rooftops”。
综上,待标识代码的目标关键词为“http”、“tiny”、“yurl”、“com”和“Rooftops”。
在根提取待标识的代码中的目标关键词之后,可以根据至少一个预先设置的关键词集合,对待标识的代码进行标识。
示例性的,预先设置的关键词集合可以包括地址关键词集合、姓名关键词集合、宗教关键词集合等。具体实施中,可以将目标关键词与每一个预先设置的关键词集合中所包含的关键词进行匹配,然后将匹配成功的关键词所在的关键词集合确定为目标关键词集合,并获取目标关键词集合的目标标识,然后将目标标识和匹配成功的关键词确定为待标识的代码的标识。
例如,若地址关键词集合的标识为A,地址关键词集合中与目标关键词匹配成功的关键词为A1、A2、A3、A4,则可以确定目标关键词在地址关键词集合下所对应的标识为(A,A1、A2、A3、A4)。
本申请实施例提供的代码标识方法,在对代码进行识别时,首先从待标识的代码中提取目标字符串;然后根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识代码的目标关键词;最后根据所述待标识代码的目标关键词,以及至少一个预先设置的关键词集合,对待标识的代码进行标识。通过上述方法,可以准确识别出代码中的关键词,提高了对代码分析的效率和准确率。
基于同一发明构思,本申请实施例中还提供了与恶意代码识别方法对应的代码标识装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述代码标识方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参见图5所示,本申请实施例所提供的代码标识装置,包括:
第一提取模块501,用于从待标识的代码中提取目标字符串;
第二提取模块502,用于根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识的代码的目标关键词;
标识模块503,用于根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识。
可选地,本申请实施例所提供的代码标识装置,还包括:脱壳处理模块504,用于从待标识的代码中提取目标字符串之前,判断所述待标识的代码是否加壳,针对所述待标识的代码有加壳的情况,对所述待标识的代码进行脱壳处理。
可选地,所述第一提取模块501,在从所述待标识的代码中提取目标字符串时,具体用于:
从所述待标识的代码中提取关键字符串;所述关键字符串包括:链接和/或路径;
基于所述关键字符串中包括的预设目标符号,从所述关键字符串中提取目标字符串。
可选地,所述第一提取模块501,在从所述待标识的代码中提取关键字符串时,具体用于:
使用正则表达式,匹配所述关键字符串中的目标标志符号;
根据匹配到的所述目标标志符号,提取所述待标识的代码中的链接,和/或,路径,得到所述待标识的代码的关键字符串。
可选地,所述标识模块503,在根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识时,具体用于:
将所述目标关键词与每一个预先设置的关键词集合中所包含的关键词进行匹配,并将匹配成功的关键词所在的集合确定为目标关键词集合;
获取所述目标关键词集合的目标标识;
将所述目标标识以及所述匹配成功的关键词确定为所述待标识的代码的标识。
本申请实施例提供的代码标识装置,在对代码进行识别时,首先从待标识的代码中提取目标字符串;然后根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识代码的目标关键词;最后根据所述待标识代码的目标关键词,以及至少一个预先设置的关键词集合,对待标识的代码进行标识。通过上述装置,可以准确识别出代码中的关键词,提高了对代码分析的效率和准确率。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述代码标识方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述代码标识方法,从而能够对待标识代码进行高效、准确的分析和标识。
对应于图1中的代码标识方法,本申请实施例还提供了一种计算机设备,参照图6所示,为本申请实施例提供的电子设备600的结构示意图,包括处理器601、存储器602、和总线603。其中,存储器602用于存储执行指令,包括内存6021和外部存储器6022;这里的内存6021也称内存储器,用于暂时存放处理器601中的运算数据,以及与硬盘等外部存储器6022交换的数据,处理器601通过内存6021与外部存储器6022进行数据交换,当电子设备600运行时,处理器601与存储器602之间通过总线603通信,使得处理器601在执行以下指令:
从待标识的代码中提取目标字符串;
根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识的代码的目标关键词;
根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识。
一种可能的设计中,处理器601执行的处理中,在从待标识的代码中提取目标字符串之前,还包括:
判断所述待标识的代码是否加壳;
针对所述待标识的代码有加壳的情况,对所述待标识的代码进行脱壳处理。
一种可能的设计中,处理器601执行的处理中,所述从待标识的代码中提取目标字符串,包括:
从所述待标识的代码中提取关键字符串;所述关键字符串包括:链接和/或路径;
基于所述关键字符串中包括的预设目标符号,从所述关键字符串中提取目标字符串。
一种可能的设计中,处理器601执行的处理中,所述从所述待标识的代码中提取关键字符串,包括:
使用正则表达式,匹配所述关键字符串中的目标标志符号;
根据匹配到的所述目标标志符号,提取所述待标识的代码中的链接,和/或,路径,得到所述待标识的代码的关键字符串。
一种可能的设计中,处理器601执行的处理中,所述根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识,包括:
将所述目标关键词与每一个预先设置的关键词集合中所包含的关键词进行匹配,并将匹配成功的关键词所在的集合确定为目标关键词集合;
获取所述目标关键词集合的目标标识;
将所述目标标识以及所述匹配成功的关键词确定为所述待标识的代码的标识。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一实施例中所述的代码标识方法的步骤。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该存储介质上的计算机程序被运行时,能够执行上述代码标识方法的步骤,从而提高代码识别的效率和准确率。
本申请实施例所提供的代码标识方法及装置的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种代码标识方法,其特征在于,包括:
从待标识的代码中提取目标字符串;
根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识的代码的目标关键词;
根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识。
2.根据权利要求1所述的方法,其特征在于,在从待标识的代码中提取目标字符串之前,所述方法还包括:
判断所述待标识的代码是否加壳;
针对所述待标识的代码有加壳的情况,对所述待标识的代码进行脱壳处理。
3.根据权利要求1所述的方法,其特征在于,所述从待标识的代码中提取目标字符串,包括:
从所述待标识的代码中提取关键字符串;所述关键字符串包括:链接和/或路径;
基于所述关键字符串中包括的预设目标符号,从所述关键字符串中提取目标字符串。
4.根据权利要求3所述的方法,其特征在于,所述从所述待标识的代码中提取关键字符串,包括:
使用正则表达式,匹配所述关键字符串中的目标标志符号;
根据匹配到的所述目标标志符号,提取所述待标识的代码中的链接,和/或,路径,得到所述待标识的代码的关键字符串。
5.根据权利要求1所述的方法,其特征在于,所述根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识,包括:
将所述目标关键词与每一个预先设置的关键词集合中所包含的关键词进行匹配,并将匹配成功的关键词所在的集合确定为目标关键词集合;
获取所述目标关键词集合的目标标识;
将所述目标标识以及所述匹配成功的关键词确定为所述待标识的代码的标识。
6.一种代码标识装置,其特征在于,包括:
第一提取模块,用于从待标识的代码中提取目标字符串;
第二提取模块,用于根据预先训练好的关键词提取模型,从所述目标字符串中提取所述待标识的代码的目标关键词;
标识模块,用于根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
脱壳处理模块,用于从待标识的代码中提取目标字符串之前,判断所述待标识的代码是否加壳,针对所述待标识的代码有加壳的情况,对所述待标识的代码进行脱壳处理。
8.根据权利要求6所述的装置,其特征在于,所述第一提取模块,在从所述待标识的代码中提取目标字符串时,具体用于:
从所述待标识的代码中提取关键字符串;所述关键字符串包括:链接和/或路径;
基于所述关键字符串中包括的预设目标符号,从所述关键字符串中提取目标字符串。
9.根据权利要求8所述的装置,其特征在于,所述第一提取模块,在从所述待标识的代码中提取关键字符串时,具体用于:
使用正则表达式,匹配所述关键字符串中的目标标志符号;
根据匹配到的所述目标标志符号,提取所述待标识的代码中的链接,和/或,路径,得到所述待标识的代码的关键字符串。
10.根据权利要求6所述的装置,其特征在于,所述标识模块,在根据所述待标识的代码的目标关键词以及至少一个预先设置的关键词集合,对所述待标识的代码进行标识时,具体用于:
将所述目标关键词与每一个预先设置的关键词集合中所包含的关键词进行匹配,并将匹配成功的关键词所在的集合确定为目标关键词集合;
获取所述目标关键词集合的目标标识;
将所述目标标识以及所述匹配成功的关键词确定为所述待标识的代码的标识。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910552684.9A CN110263540B (zh) | 2019-06-25 | 2019-06-25 | 一种代码标识方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910552684.9A CN110263540B (zh) | 2019-06-25 | 2019-06-25 | 一种代码标识方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110263540A true CN110263540A (zh) | 2019-09-20 |
CN110263540B CN110263540B (zh) | 2022-04-01 |
Family
ID=67921177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910552684.9A Expired - Fee Related CN110263540B (zh) | 2019-06-25 | 2019-06-25 | 一种代码标识方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110263540B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528117A (zh) * | 2020-12-11 | 2021-03-19 | 杭州安恒信息技术股份有限公司 | 一种政务网站一级目录的识别方法及相关装置 |
CN112580032A (zh) * | 2019-09-30 | 2021-03-30 | 奇安信安全技术(珠海)有限公司 | 文件外壳的识别方法及装置、存储介质、电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391859A (zh) * | 2014-10-22 | 2015-03-04 | 百度在线网络技术(北京)有限公司 | 一种向用户提供对象信息的方法和装置 |
CN109376547A (zh) * | 2018-09-29 | 2019-02-22 | 北京邮电大学 | 基于文件路径的信息防护方法和系统 |
WO2019070630A1 (en) * | 2017-10-02 | 2019-04-11 | Code Walker L.L.C. | MAPPING AND VISUALIZATION OF CUSTOMER SERVER COMPUTER CODE |
CN109684639A (zh) * | 2018-12-24 | 2019-04-26 | 北京奇虎科技有限公司 | 短信识别方法、装置及电子设备 |
-
2019
- 2019-06-25 CN CN201910552684.9A patent/CN110263540B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104391859A (zh) * | 2014-10-22 | 2015-03-04 | 百度在线网络技术(北京)有限公司 | 一种向用户提供对象信息的方法和装置 |
WO2019070630A1 (en) * | 2017-10-02 | 2019-04-11 | Code Walker L.L.C. | MAPPING AND VISUALIZATION OF CUSTOMER SERVER COMPUTER CODE |
CN109376547A (zh) * | 2018-09-29 | 2019-02-22 | 北京邮电大学 | 基于文件路径的信息防护方法和系统 |
CN109684639A (zh) * | 2018-12-24 | 2019-04-26 | 北京奇虎科技有限公司 | 短信识别方法、装置及电子设备 |
Non-Patent Citations (1)
Title |
---|
马费成 等: "《信息管理学基础》", 31 December 2018 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580032A (zh) * | 2019-09-30 | 2021-03-30 | 奇安信安全技术(珠海)有限公司 | 文件外壳的识别方法及装置、存储介质、电子装置 |
CN112528117A (zh) * | 2020-12-11 | 2021-03-19 | 杭州安恒信息技术股份有限公司 | 一种政务网站一级目录的识别方法及相关装置 |
CN112528117B (zh) * | 2020-12-11 | 2023-03-14 | 杭州安恒信息技术股份有限公司 | 一种政务网站一级目录的识别方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110263540B (zh) | 2022-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200195667A1 (en) | Url attack detection method and apparatus, and electronic device | |
Opara et al. | HTMLPhish: Enabling phishing web page detection by applying deep learning techniques on HTML analysis | |
US10178107B2 (en) | Detection of malicious domains using recurring patterns in domain names | |
US9582666B1 (en) | Computer system for improved security of server computers interacting with client computers | |
Laskov et al. | Static detection of malicious JavaScript-bearing PDF documents | |
Wang et al. | Adversarial demonstration attacks on large language models | |
Zhou et al. | Automatic identification of indicators of compromise using neural-based sequence labelling | |
CN109005145A (zh) | 一种基于自动特征抽取的恶意url检测系统及其方法 | |
JP6532088B2 (ja) | 自律学習整列ベースの整列コーパス生成装置およびその方法と、整列コーパスを用いた破壊表現の形態素分析装置およびその形態素分析方法 | |
CN110750789B (zh) | 解混淆方法、装置、计算机设备和存储介质 | |
US11775749B1 (en) | Content masking attacks against information-based services and defenses thereto | |
Song et al. | Mab-malware: A reinforcement learning framework for attacking static malware classifiers | |
Li et al. | {TextShield}: Robust text classification based on multimodal embedding and neural machine translation | |
Markwood et al. | Mirage: Content masking attack against {Information-Based} online services | |
WO2015067996A1 (en) | Methods and apparatuses of digital data processing | |
CN112118225A (zh) | 一种基于RNN的Webshell检测方法及装置 | |
CN112966713A (zh) | 基于深度学习的dga域名检测方法、装置及计算机设备 | |
CN110263540A (zh) | 一种代码标识方法及装置 | |
CN108470126B (zh) | 数据处理方法、装置及存储介质 | |
CN112148956A (zh) | 一种基于机器学习的暗网威胁情报挖掘系统和方法 | |
CN109818954B (zh) | Web注入型攻击检测方法、装置、电子设备及存储介质 | |
Roy et al. | From Chatbots to PhishBots?--Preventing Phishing scams created using ChatGPT, Google Bard and Claude | |
CN104715018B (zh) | 基于语义分析的智能防sql注入方法 | |
CN113726730A (zh) | 基于深度学习算法的dga域名检测方法及系统 | |
CN113609846A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20220401 |