CN110555307A - 识别和处理伪装型系统动态库的方法、装置、设备及介质 - Google Patents

识别和处理伪装型系统动态库的方法、装置、设备及介质 Download PDF

Info

Publication number
CN110555307A
CN110555307A CN201910843370.4A CN201910843370A CN110555307A CN 110555307 A CN110555307 A CN 110555307A CN 201910843370 A CN201910843370 A CN 201910843370A CN 110555307 A CN110555307 A CN 110555307A
Authority
CN
China
Prior art keywords
dynamic library
system dynamic
identified
disguised
name
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
Application number
CN201910843370.4A
Other languages
English (en)
Other versions
CN110555307B (zh
Inventor
欧和
邹荣新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN201910843370.4A priority Critical patent/CN110555307B/zh
Publication of CN110555307A publication Critical patent/CN110555307A/zh
Application granted granted Critical
Publication of CN110555307B publication Critical patent/CN110555307B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection

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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种识别伪装型系统动态库的方法、装置、设备及介质,其中,识别和处理伪装型系统动态库的方法,都是基于伪装型系统动态库的执行特点,首先判断是否存在与待识别系统动态库的名称相同的同名系统动态库,如果是,则判断待识别系统动态库是否包含有调用同名系统动态库的目标特征,如果符合以上两点,则说明待识别系统动态库是伪装型系统动态库。相比于现有技术中所提取的特征而言,本方法能够最大限度的识别出伪装型系统动态库,漏报概率低。此外,目标特征不会随着伪装型系统动态库的更新而改变,因此,试用范围广。最后,本方法不仅能够在伪装型系统动态库被加载之后识别出,还能够在被加载之前识别出,最大程度保护系统的安全性。

Description

识别和处理伪装型系统动态库的方法、装置、设备及介质
技术领域
本发明涉及病毒检测技术领域,特别是涉及一种识别伪装型系统动态库的方法、装置、设备及介质。
背景技术
动态库(Dynamic Link Library)又称动态链接库,英文为DLL,是Dynamic LinkLibrary的缩写形式,动态库是一个包含可由多个程序同时使用的代码和数据的库,其不是可执行文件。动态库提供一种方法,使得其它应用程序可以调用不属于其可执行代码的函数,函数的可执行代码位于一个DLL中,该DLL包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。系统动态库是指,Windows操作系统自身提供给用户使用的公共动态库。
为了达到入侵的目的,现有技术中,病毒文件通常是伪装成与系统动态库相同的名字而替换应用本身目录下的正常动态库,使得应用程序在使用动态库时,直接找到已经被病毒文件替换了的动态库,导致该应用程序加载该病毒文件而中毒。
为了防止病毒感染,现有技术中,通常是在被病毒文件感染后,查询到病毒文件的感染方式,再提取相应的特征,最后更新杀毒软件库。然而,病毒文件攻击的方式有多种,并且在不断变化,所以需要工程师不断的进行特征提取。很显然,上述方式,一方面依赖人工提取不仅效率低而且滞后,另一方面,在病毒不断更新的场景下,极容易出现漏报,严重影响用户的正常业务。
由此可见,针对伪装型系统动态库,如何提供一种快速、全面的识别方法是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种识别伪装型系统动态库的方法、装置、设备及介质,用于针对伪装型系统动态库,提供一种快速、全面的识别方法。
为解决上述技术问题,本发明提供一种识别伪装型系统动态库的方法,包括:
获取待识别系统动态库的名称;
判断系统目录下是否存在与所述名称相同的同名系统动态库;
如果所述系统目录下存在与所述名称相同的同名系统动态库,则判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
如果所述待识别系统动态库中包含有所述目标特征,则确定所述待识别系统动态库为伪装型系统动态库。
优选地,在判断出所述系统目录下存在与所述名称相同的同名系统动态库之后,还包括:
判断所述待识别系统动态库的访问路径是否存在于预先设定的系统动态库的访问路径集合中;
如果所述待识别系统动态库的访问路径不存在于所述预先设定的系统动态库的访问路径集合中,则进入所述判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征的步骤。
优选地,在判断出所述待识别系统动态库的访问路径不存在于所述集合中之后,还包括:
计算所述待识别系统动态库的文件哈希值;
判断所述文件哈希值是否存在于预先设定的系统动态库的文件哈希值集合中;
如果所述文件哈希值不存在于所述预先设定的系统动态库的文件哈希值集合中,则进入所述判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征的步骤。
优选地,还包括:
判断全盘是否还存在未进行识别的所述待识别系统动态库;
如果全盘还存在未进行识别的所述待识别系统动态库,返回所述判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征的步骤;
如果全盘不存在未进行识别的所述待识别系统动态库,则确定所述待识别系统动态库识别完毕。
优选地,还包括:
判断全盘是否还存在未进行识别的系统动态库;
如果全盘还存在未进行识别的系统动态库,返回所述获取待识别系统动态库的名称的步骤;
如果全盘不存在未进行识别的系统动态库,则确定全盘的系统动态库识别完毕。
为解决上述技术问题,本发明还提供一种处理伪装型系统动态库的方法,包括:
获取待识别系统动态库的名称;
判断系统目录下是否存在与所述名称相同的同名系统动态库;
如果所述系统目录下存在与所述名称相同的同名系统动态库,则判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
如果所述待识别系统动态库中包含有所述目标特征,则确定所述待识别系统动态库为伪装型系统动态库;
隔离并删除所述待识别系统动态库。
优选地,在所述隔离并删除所述待识别系统动态库之前,还包括:
判断所述待识别系统动态库是否进行加载;
如果所述待识别系统动态库进行加载,则对所述待识别系统动态库进行脱离处置,进入所述隔离并删除所述待识别系统动态库的步骤;
如果所述待识别系统动态库未进行加载,则直接进入所述隔离并删除所述待识别系统动态库。
为解决上述技术问题,本发明还提供一种识别伪装型系统动态库的装置,包括:
获取模块,用于获取待识别系统动态库的名称;
第一判断模块,用于判断系统目录下是否存在与所述名称相同的同名系统动态库;
第二判断模块,在所述第一判断模块的判断结果为是时,用于判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
确定模块,在所述第二判断模块的判断结果为是时,则用于确定所述待识别系统动态库为伪装型系统动态库。
为解决上述技术问题,本发明还提供一种处理伪装型系统动态库的装置,包括:
获取模块,用于获取待识别系统动态库的名称;
第一判断模块,用于判断系统目录下是否存在与所述名称相同的同名系统动态库;
第二判断模块,在所述第一判断模块的判断结果为是时,用于判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
确定模块,在所述第二判断模块的判断结果为是时,则用于确定所述待识别系统动态库为伪装型系统动态库;
处理模块,用于隔离并删除所述待识别系统动态库。
为解决上述技术问题,本发明还提供一种识别伪装型系统动态库的设备,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如所述的识别伪装型系统动态库的方法的步骤。
为解决上述技术问题,本发明还提供一种处理伪装型系统动态库的设备,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如所述的识别伪装型系统动态库的方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的识别伪装型系统动态库的方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的处理伪装型系统动态库的方法的步骤。
本发明所提供的识别伪装型系统动态库的方法,基于伪装型系统动态库的执行特点,首先判断是否存在与待识别系统动态库的名称相同的同名系统动态库,如果存在,则进一步判断待识别系统动态库是否包含有调用同名系统动态库的目标特征,如果符合以上两点,则说明待识别系统动态库是伪装型系统动态库。由于本方法采用上述判断方式,相比于现有技术中采用的根据被感染后的情况所提取的特征而言,本方法能够最大限度的识别出伪装型系统动态库,漏报概率低。此外,本方法中所用到的目标特征不会随着伪装型系统动态库的更新而改变,因此,试用范围广。最后,本方法不仅能够在伪装型系统动态库被加载之后识别出,还能够在被加载之前识别出,因此,能够及时识别,最大程度保护系统的安全性。
此外,本发明所提供的识别伪装型系统动态库的装置、设备、处理伪装型系统动态库的方法、装置、设备及介质,与上述方法相对应,效果如上。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用程序加载系统动态库的方法的流程图;
图2为本发明实施例提供的一种Windows系统的部分系统动态库的示意图;
图3为本发明实施例提供的一种识别伪装型系统动态库的方法的流程图;
图4为本发明另一实施例提供的一种识别伪装型系统动态库的方法的流程图;
图5为本发明实施例提供的一种系统动态库的链表示意图;
图6为本发明另一实施例提供的一种识别伪装型系统动态库的方法流程图;
图7为本发明实施例提供的一种处理伪装型系统动态库的方法的流程图;
图8为本发明实施例提供的一种处理伪装型系统动态库的方法的具体应用场景图;
图9为本发明实施例提供的一种识别伪装型系统动态库的装置的结构图;
图10为本发明实施例提供的一种处理伪装型系统动态库的装置的结构图;
图11为发明实施例提供的一种识别伪装型系统动态库的设备的结构图;
图12为发明实施例提供的一种处理伪装型系统动态库的设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种识别伪装型系统动态库的方法、装置、设备及介质,用于针对伪装型系统动态库,提供一种快速、全面的识别方法。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
为了清楚说明伪装型系统动态库的侵入原理,本发明对于系统动态库的使用方法进行说明。图1为本发明实施例提供的一种应用程序加载系统动态库的方法的流程图。如图1所示,该方法从应用程序的执行过程进行说明,包括:
S10:当确定需要调用系统提供的函数时,确定函数所在的系统动态库的名称。
S11:判断该系统动态库是否存在于当前目录下,如果是,则进入S12,否则,进入S13。
S12:加载当前目录下的系统动态库。
S13:加载系统目录下的系统动态库。
如上所述,假定存在某应用程序a.exe,其所在目录为D:/app3,则其“当前目录”同样也为D:/app3,当a.exe被运行起来后,假定其需要调用微软提供的系统函数b,由于系统函数b的代码实现在系统动态库c.dll中,故a.exe运行起来前,需要依赖并加载该动态库。由于微软系统自身设置的原因,其优先判断左分支,即先判断a.exe所在的目录(当前目录)是否存在c.dll,如存在则加载此目录下的c.dll,如不存在,则加载系统目录下的c.dll,通常来说,32位系统动态库放在C:/Windows/System32下,64位系统动态库放在C:/Windows/SysWOW64中。
操作系统层面并不做动态库的检验,即Windows自身是不管该动态库是来源微软自身提供的动态库,还是第三方的,仅仅只是根据动态库的名称进行判断。
正因为此,很多病毒就利用了这一点,将自己的文件名称伪装成为某个系统动态库相同的名称(称之为伪装型系统动态库),并将病毒自身动态库复制多份到各个应用程序所在的目录,以达到随各个应用程序启动而加载的目的。由于伪装型系统动态库在系统目录下,容易导致整个系统无法正常运行,也就无法实现其目的,因此,通常情况下,伪装型系统动态库是在应用程序所在的目录,但也不排除在系统目录下。无论是在系统目录下,还是在应用程序所在的目录下,均不影响本发明技术方案的实施。需要说明的是,本发明所提到的系统可以是Windows系统,众所周知,Windows系统是有版本的,部分系统还区分32位和64位。但不管如何,对于特定版本的Windows系统,其系统动态库基本就1万左右。如图2所示,展示了Windows 10系统中的部分系统动态库,相同版本相同位数的系统,其同名系统动态库是一致的,不变的,且允许有多个。对应的,本发明提到的系统目录是指操作系统的主要文件存放的目录,比如,包括但不限于C:/Windows/System32或C:/Windows/SysWOW64。
由于伪装型系统动态库的真实目的是在应用程序加载系统动态库时,既能够让应用程序本身执行其上的代码以导致病毒感染,又需要调用系统目录下真正的系统动态库(后文提到的同名系统动态库)以防止应用程序不能顺利加载。因此,伪装型系统动态库的共同特征都是在其代码中包含有回调函数、导入导出函数或中转函数等具有表征调用同名系统动态库的目标特征。如图1所示,如果当前目录下的系统动态库被伪装型系统动态库所替代,则伪装型系统动态库会直接被加载,但是为了能够实现该应用程序顺利加载,该伪装型系统动态库还会包含有调用同名系统动态库的操作,即进入S13,使得应用程序既执行其上的代码,又能够顺利加载系统目录下的同名系统动态库。仍然以上文例子c.dll进行阐述,如果c.dll是伪装型动态库,则意味该c.dll并没有系统动态库c.dll的真实代码实现,但a.exe是需要真实的函数实现的,为了保证a.exe被正常加载起来,则伪装型动态库必须做调用系统动态库c.dll的操作。
以上内容是对伪装型系统动态库的执行方式的详细说明。基于伪装型系统动态库的执行特点,本发明实施例提供一种识别伪装型系统动态库的方法。图3为本发明实施例提供的一种识别伪装型系统动态库的方法的流程图。如图3所示,该方法包括:
S20:获取待识别系统动态库的名称。
需要说明的是,本实施例提到的待识别系统动态库是任意一个系统动态库,当需要识别一个系统动态库是否为伪装型系统动态库时,该系统动态库就是待识别系统动态库。步骤S20可以是在任意情况下执行,例如,可以在主机开机时执行,也可以是在某一个应用程序需要加载系统动态库时执行。可以理解的是,如果是在主机开机时执行,那么对所有系统动态库执行本方法对应的步骤,则可以完成全盘扫毒,即可以识别出全盘存在的全部伪装型系统动态库。如果是在某一个应用程序需要加载系统动态库时执行,则对应的只能识别该应用程序所要加载的系统动态库是否为伪装型系统动态库。
本步骤中的待识别系统动态库的名称就是前文提到的具有“.dll”后缀的名称。
S21:判断系统目录下是否存在与待识别系统动态库的名称相同的同名系统动态库,如果是,则进入S22,否则,结束。
上文中提到的,伪装型系统动态库为了能够让应用程序顺利加载,必然是要调用一个系统目录下的一个真实的系统动态库,即本步骤提到的同名系统动态库,例如,待识别系统动态库的名称为c.dll,如果不存在与其同名的系统动态库,则该系统动态库必然不是伪装型系统动态库;如果存在与其同名的系统动态库,有可能这个同名系统动态库是真实的系统动态库,而该系统动态库就有可能是伪装系统动态库,因为只有同名的情况下,应用程序才会依据伪装型系统动态库的调用操作去加载系统目录下的同名系统动态库。很显然,如果应用程序当前目录下的系统动态库为伪装型系统动态库,且名称为c.dll,那么系统目录下必然是存在c.dll这样的同名系统动态库。
需要说明的是,由于系统在搭建时,会包含有多种系统动态库以供多个应用程序加载,而应用程序也有可能自身就包含有一个或多个系统动态库,因此,可能会存在应用程序所在的目录下的系统动态库和系统目录下的系统动态库重复的情况,即同一名称的系统动态库既出现在非系统目录下,又出现在系统目录下,且不是伪装型系统动态库。综上所述,对于一个待识别系统动态库,即使系统目录下存在与其同名的同名系统动态库,也不能确定该系统动态库就是伪装型系统动态库,还需要进一步确认。
S22:判断待识别系统动态库中是否包含有表征调用同名系统动态库的目标特征,如果是,则进入S23。
S23:确定待识别系统动态库为伪装型系统动态库。
本步骤是存在同名系统动态库的基础上执行的,因为伪装型系统动态库必然是要调用真正的系统动态库才能实现应用程序的正常加载。
本发明提到的目标特征可以是回调函数、导入导出函数或中转函数等。由于目标特征是预先要写入伪装型系统动态库中的,因此,无论在静态扫描(该系统动态库未被加载,仅仅是存在于某一目录下)时,还是在动态扫描(该系统动态库已被加载)时,都可以被识别出来。并且,即使伪装型系统动态库不断更新,其目标特征必然是包含调用同名系统动态库的目标特征,因此,不会存在漏报的问题。
可以理解的是,如果待识别系统动态库中不包含有表征调用同名系统动态库的目标特征,说明该系统动态库仅仅是一个具有与某一个系统动态库同名的真实系统动态库,即该系统动态库不是伪装型系统动态库。
本实施例提供的识别伪装型系统动态库的方法,基于伪装型系统动态库的执行特点,首先判断是否存在与待识别系统动态库的名称相同的同名系统动态库,如果存在,则进一步判断待识别系统动态库是否包含有调用同名系统动态库的目标特征,如果符合以上两点,则说明待识别系统动态库是伪装型系统动态库。由于本方法采用上述判断方式,相比于现有技术中采用的根据被感染后的情况所提取的特征而言,本方法能够最大限度的识别出伪装型系统动态库,漏报概率低。此外,本方法中所用到的目标特征不会随着伪装型系统动态库的更新而改变,因此,试用范围广。最后,本方法不仅能够在伪装型系统动态库被加载之后识别出,还能够在被加载之前识别出,因此,能够及时识别,最大程度保护系统的安全性。
图4为本发明另一实施例提供的一种识别伪装型系统动态库的方法的流程图。如图4所示,在上述实施例的基础上,在判断出系统目录下存在与名称相同的同名系统动态库之后,还包括:
S30:判断待识别系统动态库的访问路径是否存在于预先设定的系统动态库的访问路径集合中,如果否,则进入S22。
可以理解的是,上一实施例中提到的判断待识别系统动态库中是否包含有表征调用同名系统动态库的目标特征的步骤,需要提取目标特征,而目标特征有多种类型,所以,在提取过程中,需要消耗较多的系统资源,并且,提取的速度较慢,导致整个识别过程的速度较慢。为了克服这一缺点,本实施例中先通过访问路径这一参数过滤掉一部分不是伪装型系统动态库的系统动态库。
在具体实施中,对Windows系统,生成一个系统动态库哈希链表,如图5所示,包含有5个系统动态库a.dll、b.dll、c.dll、d.dll、e.dll,每个系统动态库有一个或多个访问路径,并且有对应的文件哈希值。通过该链表上的访问路径作为基准与待识别系统动态库的访问路径进行比较。可以理解的是,访问路径集合是如图5所示的各系统动态库的访问路径组成的集合。如果待识别系统动态库的访问路径与该链表中同名系统动态库的访问路径相同的话,则认为该访问路径存在于访问路径集合中,则该待识别系统动态库必然不是伪装型系统动态库。根据上述比较方法,可以过滤掉一部分系统动态库,该部分系统动态库就无需参与S22中目标特征的提取,因此,能够加快识别的速度。
进一步的,如图4所示,在判断出待识别系统动态库的访问路径不存在于集合中之后,还包括:
S31:计算待识别系统动态库的文件哈希值。
S32:判断文件哈希值是否存在于预先设定的系统动态库的文件哈希值集合中,如果否,则进入S22。
本实施例中,待识别系统动态库的文件哈希值可以是预先计算的,也可以是当下计算,并不影响技术方案的实施。S32中,文件哈希值集合是如图5所示的各系统动态库的文件哈希值组成的集合。事实上,只要文件哈希值与文件哈希值集合中的一个哈希值相同,就可以认为该文件哈希值存在于文件哈希值集合中。可以理解的是,如果待识别系统动态库的文件哈希值存在于哈希值集合中,则该待识别系统动态库必然不是伪装型系统动态库。
可以理解的是,上一实施例中提到的判断待识别系统动态库中是否包含有表征调用同名系统动态库的目标特征的步骤,需要提取目标特征,而目标特征有多种类型,所以,在提取过程中,需要消耗较多的系统资源,并且,提取的速度较慢,导致整个识别过程的速度较慢。为了克服这一缺点,本实施例中先通过文件哈希值这一参数过滤掉一部分不是伪装型系统动态库的系统动态库,该部分系统动态库就无需参与S22中目标特征的提取,因此,能够加快识别的速度。
图6为本发明另一实施例提供的一种识别伪装型系统动态库的方法流程图。如图6所示,在上一实施例的基础上,识别伪装型系统动态库的方法还包括:
S40:判断全盘是否还存在未进行识别的待识别系统动态库,如果是,返回S22,如果否,则进入S41。
S41:确定待识别系统动态库识别完毕。
可以理解的是,同一个名称的系统动态库可能不止一个,基于这种情况,上文提到的待识别系统动态库就可能不止一个,例如,a.dll有3个,分别是a.dll,1,a.dll,2,a.dll,3,那么对a.dll进行识别时,a.dll,1,a.dll,2,a.dll,3都可以是待识别系统动态库。如果先对a.dll,1进行识别,则上述实施例所述的待识别系统动态库就是a.dll,1,而此时,全盘还存在a.dll,2,a.dll,3,需要识别出来全部a.dll,即要全盘遍历a.dll。如果对a.dll,1,a.dll,2,a.dll,3识别完后,全盘不存在未进行识别的a.dll,则说明a.dll识别完毕,即全盘不存在未进行识别的待识别系统动态库,则说明待识别系统动态库识别完毕。
本实施例中,能够保证全盘中同一个名称的系统动态库全部进行识别,避免遗漏。
如图6所示,在上一实施例的基础上,还包括:
S42:判断全盘是否还存在未进行识别的系统动态库,如果是,返回S10,如果否,则进入S43。
S43:确定全盘的系统动态库识别完毕。
需要注意的是,本实施例中的是针对全部系统动态库而言的,例如在上一实施例中对全部的a.dll进行了识别,全盘还存在b.dll,c.dll、d.dll、e.dll,因此,对于这些系统动态库,需要执行与a.dll相同的步骤,本实施例不再赘述。当全盘中不存在未进行识别的系统动态库,则说明全盘的系统动态库均识别完毕。
本实施例中,能够保证全盘所有的系统动态库全部进行识别,避免遗漏。
图7为本发明实施例提供的一种处理伪装型系统动态库的方法的流程图。
如图7所示,该方法包括:
S20:获取待识别系统动态库的名称。
S21:判断系统目录下是否存在与待识别系统动态库的名称相同的同名系统动态库,如果是,则进入S22。
S22:判断待识别系统动态库中是否包含有表征调用同名系统动态库的目标特征,如果是,则进入S23。
S23:确定待识别系统动态库为伪装型系统动态库。
S24:隔离并删除待识别系统动态库。
需要说明的是,上文中是提供一种识别伪装型系统动态库的方法,本实施例中是提供一种处理伪装型系统动态库的方法。本实施例中的S20-S23与上文提到的识别伪装型系统动态库的方法的实施例相同,故不再赘述。本实施例对应的方法可以应用在主机开机时的应用场景或者是在接收到杀毒执行指令时的应用场景。在具体实施中,各系统动态库的识别顺序和处理顺序不作限定。
本实施例中提到的S24是要对识别出来的伪装型系统动态库进行处置。具体的,S24可以是以下几种情况:
1)在每次识别出伪装型系统动态库后,将其加入到处置链表中,待全部系统动态库识别完后,再统一将伪装型系统动态库隔离并删除;
2)在每识别出一个伪装型系统动态库后,立即将该系统动态库隔离并删除;
3)在遍历出同一个名称的最后一个伪装型系统动态库后,隔离并删除该名称对应的全部伪装型系统动态库。
进一步的,在隔离和删除待识别系统动态库时,有的待识别系统动态库已经被加载,有的未被加载,因此,优选地,在隔离和删除待识别系统动态库之前,还包括:
判断待识别系统动态库是否进行加载,如果是,则对待识别系统动态库进行脱离处置,并隔离和删除待识别系统动态库,如果否,则直接隔离并删除待识别系统动态库。
本实施例提供的处理伪装型系统动态库的方法,基于伪装型系统动态库的执行特点,首先判断是否存在与待识别系统动态库的名称相同的同名系统动态库,如果存在,则进一步判断待识别系统动态库是否包含有调用同名系统动态库的目标特征,如果符合以上两点,则说明待识别系统动态库是伪装型系统动态库,最后对待识别系统动态库隔离和删除。由于本方法采用上述判断方式,相比于现有技术中采用的根据被感染后的情况所提取的特征而言,本方法能够最大限度的识别出伪装型系统动态库,漏报概率低。此外,本方法中所用到的目标特征不会随着伪装型系统动态库的更新而改变,因此,试用范围广。最后,本方法不仅能够在伪装型系统动态库被加载之后识别出,还能够在被加载之前识别出,因此,能够及时识别,最大程度保护系统的安全性。
图8为本发明实施例提供的一种处理伪装型系统动态库的方法的具体应用场景图。在具体实施中,可以从名称为a.dll的系统动态库开始遍历。a.dll,1作为待识别系统动态库,首先,执行S20-S23,确定出a.dll,1为伪装型系统动态库,然后再执行S40-S22-S23确定出a.dll,2为伪装型系统动态库,再执行S40-S42确定出a.dll,n为伪装型系统动态库且名称为a.dll的待识别系统动态库识别完毕。对于识别出的伪装型系统动态库,即a.dll,1、a.dll,2和a.dll,n,对最后一个遍历出的a.dll,n,先删除并隔离,则该节点销毁完毕,再依次往上回朔每个节点,即a.dll,2和a.dll,1。与名称为a.dll相同的方式对名称为b.dll的系统动态库进行识别直到识别出e.dll,n为止,并依次隔离和删除e.dll,n、e.dll,2和e.dll,1。
图9为本发明实施例提供的一种识别伪装型系统动态库的装置的结构图。
如图9所示,该装置包括:
获取模块10,用于获取待识别系统动态库的名称。
第一判断模块11,用于判断系统目录下是否存在与名称相同的同名系统动态库。
第二判断模块12,在第一判断模块11的判断结果为是时,用于判断待识别系统动态库中是否包含有表征调用同名系统动态库的目标特。
确定模块13,在第二判断模块12的判断结果为是时,则用于确定待识别系统动态库为伪装型系统动态库。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本实施例提供的识别伪装型系统动态库的装置,基于伪装型系统动态库的执行特点,相比于现有技术中采用的根据被感染后的情况所提取的特征而言,本装置能够最大限度的识别出伪装型系统动态库,漏报概率低。此外,本装置中所用到的目标特征不会随着伪装型系统动态库的更新而改变,因此,试用范围广。最后,本装置不仅能够在伪装型系统动态库被加载之后识别出,还能够在被加载之前识别出,因此,能够及时识别,最大程度保护系统的安全性。
图10为本发明实施例提供的一种处理伪装型系统动态库的装置的结构图。如图10所示,该装置包括:
获取模块10,用于获取待识别系统动态库的名称。
第一判断模块11,用于判断系统目录下是否存在与名称相同的同名系统动态库。
第二判断模块12,在第一判断模块11的判断结果为是时,用于判断待识别系统动态库中是否包含有表征调用同名系统动态库的目标特征。
确定模块13,在第二判断模块12的判断结果为是时,则用于确定待识别系统动态库为伪装型系统动态库。
处理模块20,用于隔离并删除待识别系统动态库。
由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本实施例提供的处理伪装型系统动态库的装置,基于伪装型系统动态库的执行特点,相比于现有技术中采用的根据被感染后的情况所提取的特征而言,本装置能够最大限度的识别出伪装型系统动态库,漏报概率低。此外,本装置中所用到的目标特征不会随着伪装型系统动态库的更新而改变,因此,试用范围广。最后,本装置不仅能够在伪装型系统动态库被加载之后识别出,还能够在被加载之前识别出,因此,能够及时识别,最大程度保护系统的安全性。
进一步的,本发明实施例还提供一种识别伪装型系统动态库的设备。图11为发明实施例提供的一种识别伪装型系统动态库的设备的结构图。如图11所示,该设备包括存储器30,用于存储计算机程序;
处理器31,用于执行计算机程序时实现如识别伪装型系统动态库的方法的步骤。
其中,处理器31可以包括一个或多个处理核心,比如3核心处理器、8核心处理器等。处理器31可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器31也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器31可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器31还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器30可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器30还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器30至少用于存储以下计算机程序300,其中,该计算机程序被处理器31加载并执行之后,能够实现前述任一实施例公开的识别伪装型系统动态库的方法中的相关步骤。另外,存储器30所存储的资源还可以包括操作系统301和数据302等,存储方式可以是短暂存储或者永久存储。其中,操作系统301可以为Windows。数据302可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,识别伪装型系统动态库的设备还可包括有显示屏32、输入输出接口33、通信接口34、电源35以及通信总线36。
本领域技术人员可以理解,图11中示出的结构并不构成对识别伪装型系统动态库的设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的识别伪装型系统动态库的设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的识别伪装型系统动态库的方法,效果同上。
进一步的,本发明实施例还提供一种处理伪装型系统动态库的设备。图12为发明实施例提供的一种处理伪装型系统动态库的设备的结构图。如图12所示,该设备包括存储器40,用于存储计算机程序;
处理器41,用于执行计算机程序时实现如处理伪装型系统动态库的方法的步骤。
其中,处理器41可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器41可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器41也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器41可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器41还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器40可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器40还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器40至少用于存储以下计算机程序400,其中,该计算机程序被处理器41加载并执行之后,能够实现前述任一实施例公开的识别伪装型系统动态库的方法中的相关步骤。另外,存储器40所存储的资源还可以包括操作系统401和数据402等,存储方式可以是短暂存储或者永久存储。其中,操作系统401可以为Windows。数据402可以包括但不限于上述方法所涉及到的数据。
在一些实施例中,处理伪装型系统动态库的设备还可包括有显示屏42、输入输出接口43、通信接口44、电源45以及通信总线46。
本领域技术人员可以理解,图12中示出的结构并不构成对处理伪装型系统动态库的设备的限定,可以包括比图示更多或更少的组件。
本申请实施例提供的处理伪装型系统动态库的设备,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如上所述的处理伪装型系统动态库的方法,效果同上。
进一步的,本发明实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如识别伪装型系统动态库的方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的识别伪装型系统动态库的方法的步骤,效果同上。
最后,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如处理伪装型系统动态库的方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例中提供的计算机可读存储介质所包含的计算机程序能够在被处理器执行时实现如上所述的处理伪装型系统动态库的方法的步骤,效果同上。
以上对本发明所提供的识别伪装型系统动态库的方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (13)

1.一种识别伪装型系统动态库的方法,其特征在于,包括:
获取待识别系统动态库的名称;
判断系统目录下是否存在与所述名称相同的同名系统动态库;
如果所述系统目录下存在与所述名称相同的同名系统动态库,则判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
如果所述待识别系统动态库中包含有所述目标特征,则确定所述待识别系统动态库为伪装型系统动态库。
2.根据权利要求1所述的方法,其特征在于,在判断出所述系统目录下存在与所述名称相同的同名系统动态库之后,还包括:
判断所述待识别系统动态库的访问路径是否存在于预先设定的系统动态库的访问路径集合中;
如果所述待识别系统动态库的访问路径不存在于所述预先设定的系统动态库的访问路径集合中,则进入所述判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征的步骤。
3.根据权利要求2所述的方法,其特征在于,在判断出所述待识别系统动态库的访问路径不存在于所述集合中之后,还包括:
计算所述待识别系统动态库的文件哈希值;
判断所述文件哈希值是否存在于预先设定的系统动态库的文件哈希值集合中;
如果所述文件哈希值不存在于所述预先设定的系统动态库的文件哈希值集合中,则进入所述判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征的步骤。
4.根据权利要求1所述的方法,其特征在于,还包括:
判断全盘是否还存在未进行识别的所述待识别系统动态库;
如果全盘还存在未进行识别的所述待识别系统动态库,返回所述判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征的步骤;
如果全盘不存在未进行识别的所述待识别系统动态库,则确定所述待识别系统动态库识别完毕。
5.根据权利要求4所述的方法,其特征在于,还包括:
判断全盘是否还存在未进行识别的系统动态库;
如果全盘还存在未进行识别的系统动态库,返回所述获取待识别系统动态库的名称的步骤;
如果全盘不存在未进行识别的系统动态库,则确定全盘的系统动态库识别完毕。
6.一种处理伪装型系统动态库的方法,其特征在于,包括:
获取待识别系统动态库的名称;
判断系统目录下是否存在与所述名称相同的同名系统动态库;
如果所述系统目录下存在与所述名称相同的同名系统动态库,则判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
如果所述待识别系统动态库中包含有所述目标特征,则确定所述待识别系统动态库为伪装型系统动态库;
隔离并删除所述待识别系统动态库。
7.根据权利要求6所述的方法,其特征在于,在所述隔离并删除所述待识别系统动态库之前,还包括:
判断所述待识别系统动态库是否进行加载;
如果所述待识别系统动态库进行加载,则对所述待识别系统动态库进行脱离处置,进入所述隔离并删除所述待识别系统动态库的步骤;
如果所述待识别系统动态库未进行加载,则直接进入所述隔离并删除所述待识别系统动态库。
8.一种识别伪装型系统动态库的装置,其特征在于,包括:
获取模块,用于获取待识别系统动态库的名称;
第一判断模块,用于判断系统目录下是否存在与所述名称相同的同名系统动态库;
第二判断模块,在所述第一判断模块的判断结果为是时,用于判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
确定模块,在所述第二判断模块的判断结果为是时,则用于确定所述待识别系统动态库为伪装型系统动态库。
9.一种处理伪装型系统动态库的装置,其特征在于,包括:
获取模块,用于获取待识别系统动态库的名称;
第一判断模块,用于判断系统目录下是否存在与所述名称相同的同名系统动态库;
第二判断模块,在所述第一判断模块的判断结果为是时,用于判断所述待识别系统动态库中是否包含有表征调用所述同名系统动态库的目标特征;
确定模块,在所述第二判断模块的判断结果为是时,则用于确定所述待识别系统动态库为伪装型系统动态库;
处理模块,用于隔离并删除所述待识别系统动态库。
10.一种识别伪装型系统动态库的设备,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述的识别伪装型系统动态库的方法的步骤。
11.一种处理伪装型系统动态库的设备,其特征在于,包括存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求6或7所述的识别伪装型系统动态库的方法的步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的识别伪装型系统动态库的方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求6或7任一项所述的处理伪装型系统动态库的方法的步骤。
CN201910843370.4A 2019-09-06 2019-09-06 识别和处理伪装型系统动态库的方法、装置、设备及介质 Active CN110555307B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910843370.4A CN110555307B (zh) 2019-09-06 2019-09-06 识别和处理伪装型系统动态库的方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910843370.4A CN110555307B (zh) 2019-09-06 2019-09-06 识别和处理伪装型系统动态库的方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN110555307A true CN110555307A (zh) 2019-12-10
CN110555307B CN110555307B (zh) 2021-09-17

Family

ID=68739340

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910843370.4A Active CN110555307B (zh) 2019-09-06 2019-09-06 识别和处理伪装型系统动态库的方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN110555307B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046377A (zh) * 2019-12-25 2020-04-21 五八同城信息技术有限公司 加载动态链接库的方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102981869A (zh) * 2012-11-05 2013-03-20 北京奇虎科技有限公司 一种系统启动项程序的运行处理方法和装置
US8997074B1 (en) * 2006-09-29 2015-03-31 Trend Micro Incorporated Dynamic linking library (DLL) replacement in an embedded operating system environment
CN108491736A (zh) * 2018-04-02 2018-09-04 北京顶象技术有限公司 篡改监测方法及装置
CN109240707A (zh) * 2018-09-29 2019-01-18 珠海市君天电子科技有限公司 防止恶意动态链接库dll文件注入的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8997074B1 (en) * 2006-09-29 2015-03-31 Trend Micro Incorporated Dynamic linking library (DLL) replacement in an embedded operating system environment
CN102981869A (zh) * 2012-11-05 2013-03-20 北京奇虎科技有限公司 一种系统启动项程序的运行处理方法和装置
CN108491736A (zh) * 2018-04-02 2018-09-04 北京顶象技术有限公司 篡改监测方法及装置
CN109240707A (zh) * 2018-09-29 2019-01-18 珠海市君天电子科技有限公司 防止恶意动态链接库dll文件注入的方法和装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111046377A (zh) * 2019-12-25 2020-04-21 五八同城信息技术有限公司 加载动态链接库的方法、装置、电子设备及存储介质
CN111046377B (zh) * 2019-12-25 2023-11-14 五八同城信息技术有限公司 加载动态链接库的方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN110555307B (zh) 2021-09-17

Similar Documents

Publication Publication Date Title
RU2551820C2 (ru) Способ и устройство для проверки файловой системы на наличие вирусов
US7620990B2 (en) System and method for unpacking packed executables for malware evaluation
JP6088713B2 (ja) 脆弱性発見装置、脆弱性発見方法、及び脆弱性発見プログラム
US10318730B2 (en) Detection and prevention of malicious code execution using risk scoring
US10216934B2 (en) Inferential exploit attempt detection
CN109189496B (zh) 应用程序的动态库信息获取方法及装置
CN108319850B (zh) 沙箱检测的方法、沙箱系统和沙箱设备
CN106803040B (zh) 病毒特征码处理方法及装置
US10839074B2 (en) System and method of adapting patterns of dangerous behavior of programs to the computer systems of users
CN112422581B (zh) JVM中的Webshell网页检测方法、装置及设备
CN109800571B (zh) 事件处理方法和装置、以及存储介质和电子装置
US11003772B2 (en) System and method for adapting patterns of malicious program behavior from groups of computer systems
US11403388B2 (en) Assignment device, assignment method, and assignment program
CN110555307B (zh) 识别和处理伪装型系统动态库的方法、装置、设备及介质
CN112181487A (zh) 软件兼容性处理方法、装置、电子设备及存储介质
CN108363931B (zh) 一种对隔离区文件进行还原的方法及装置
KR20090096823A (ko) 코드 보호 기법을 고려한 악성 프로그램 감지 시스템 및 그방법
CN103353930A (zh) 一种防范感染式病毒感染的方法和装置
CN108959915B (zh) 一种rootkit检测方法、装置及服务器
CN113127868A (zh) 脚本识别方法、装置、设备及存储介质
CN105224871A (zh) 一种病毒清除方法及装置
CN109784037B (zh) 文档文件的安全防护方法及装置、存储介质、计算机设备
CN114610577A (zh) 一种目标资源的锁定方法、装置、设备和介质
CN113760393A (zh) 一种动态链接库的防护方法、装置、设备和介质
US20220114253A1 (en) Action plan estimation apparatus, action plan estimation method, and computer-readable recording medium

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