CN104200164B - 一种加载器Loader病毒的查杀方法、装置及终端 - Google Patents
一种加载器Loader病毒的查杀方法、装置及终端 Download PDFInfo
- Publication number
- CN104200164B CN104200164B CN201410458394.5A CN201410458394A CN104200164B CN 104200164 B CN104200164 B CN 104200164B CN 201410458394 A CN201410458394 A CN 201410458394A CN 104200164 B CN104200164 B CN 104200164B
- Authority
- CN
- China
- Prior art keywords
- function
- export
- file
- detection program
- object detection
- 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.)
- Active
Links
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/566—Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
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)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种加载器Loader病毒的查杀方法,包括:获取目标检测程序的动态链接库DLL文件;提取所述目标检测程序的DLL文件的多个导出函数;判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒;清除或隔离所述目标检测程序。相应地,本发明实施例还公开了一种加载器Loader病毒的查杀装置和一种终端。采用本发明,可以实现对Loader病毒的查杀,具有维护成本低和准确率高的特点。
Description
技术领域
本发明涉及网络安全技术领域,尤其涉及一种加载器Loader病毒的查杀方法、装置及终端。
背景技术
木马病毒是一种常见的计算机病毒,其隐藏在宿主计算机内,病毒作者可以通过木马病毒对宿主计算机进行毁坏、窃取文件或远程操控等,例如:病毒作者可以通过木马病毒在远程控制宿主计算机执行“开关摄像头”或“开关麦克风”等敏感操作,对用户的隐私造成极大威胁。其中,加载器(Loader)病毒便属于木马病毒,加载器病毒通常伪装作主程序的DLL(Dynamic Link Library,动态连接库)文件,随主程序启动而运行。需要指出的是,加载器病毒所依附的主程序往往是知名企业的程序,具有安全认证的数字签名,因此被查杀难度大。
目前,普遍应对加载器病毒的方法是,先确定待检验的主程序,再在预设的数据库中查找在正常情况下该主程序的DLL文件的文件名列表,然后检验该主程序的DLL文件的文件名列表是否与正常情况下的一致,若不一致说明该主程序中伪装有加载器病毒。但是,由于主程序数目庞大且更新频繁,维护数据库的成本非常高,一旦维护没同步,误报的几率非常高,影响了用户的体验。
发明内容
本发明实施例所要解决的技术问题在于,提供一种加载器Loader病毒的查杀方法、装置及终端,可以实现对Loader病毒的查杀,具有维护成本低和准确率高的特点。
为了解决上述技术问题,本发明实施例提供了一种加载器Loader病毒的查杀方法,包括:
获取目标检测程序的动态链接库DLL文件;
提取所述目标检测程序的DLL文件的多个导出函数;
判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒;
清除或隔离所述目标检测程序。
相应地,本发明实施例还提供了一种加载器Loader病毒的查杀装置,包括:
文件获取模块,用于获取目标检测程序的动态链接库DLL文件;
函数提取模块,用于提取所述目标检测程序的DLL文件的多个导出函数;
病毒确定模块,用于判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒;
病毒处理模块,用于清除或隔离所述目标检测程序。
实施本发明实施例,具有如下有益效果:本发明实施例通过提取目标检测程序的DLL文件的多个导出函数,判断在DLL文件的多个导出函数中是否有且仅有一个导出函数具有逻辑功能的方法,从而确定目标检测程序的DLL文件是否为Loader病毒,可以实现对Loader病毒的查杀,具有维护成本低和准确率高的特点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种加载器Loader病毒的查杀方法的流程示意图;
图2是本发明实施例提供的另一种加载器Loader病毒的查杀方法的流程示意图;
图3是本发明实施例提供的一种加载器Loader病毒的查杀装置的结构示意图;
图4是本发明实施例提供的一种文件获取模块的结构示意图;
图5是本发明实施例提供的一种函数提取模块的结构示意图;
图6是本发明实施例提供的一种文件目录的示意图;
图7是本发明实施例提供的另一种加载器Loader病毒的查杀装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中的加载器Loader病毒的查杀装置(以下简称为“本发明装置”)内置于终端,所述终端可以包括个人电脑、智能手机、平板电脑、游戏机以及电子阅读器等,所述终端可以安装或运行程序。
应理解,本发明实施例的Loader病毒是一种木马病毒,病毒作者可以通过木马病毒对宿主计算机进行毁坏、窃取文件或远程操控等。Loader病毒通常伪装作主程序的子文件,随主程序启动而运行。其中,在Windows***的终端中,上述主程序可以是可执行(EXE)程序,以“.EXE”作为文件名后缀,子文件可以是DLL(Dynamic Link Library,动态连接库)文件,需要指出的是,EXE程序的功能是通过运行一个或多个DLL文件来实现的。一般地,EXE程序的DLL文件要么与其处于同一文件目录下,要么处于***文件目录,因此在EXE程序启动时,终端会默认首先在EXE程序的文件目录下查找DLL文件,若无查找结果再到***文件目录下查找DLL文件。利用上述特点,病毒作者将Loader病毒替换EXE程序的DLL文件或将Loader病毒放置在EXE程序的文件目录下,然后将上述EXE程序伪装作正常EXE程序欺骗用户在终端上使用,当终端启动该EXE程序后便会运行Loader病毒。
还应理解,Loader病毒具有以下特点:1、在文件类型上,Loader病毒是DLL文件;2、为了欺骗终端,Loader病毒的导出函数的个数与正常DLL的导出函数的个数相同;3、Loader病毒仅利用其中一个导出函数实现其行为指令,而其它的导出函数使用无用指令来充数。
图1是本发明实施例中一种加载器Loader病毒的查杀方法的流程示意图。如图所示本实施例中的加载器Loader病毒的查杀方法的流程可以包括:
S101,获取目标检测程序的动态链接库DLL文件。
所述目标检测程序可以是终端上的任意一个应用程序,在本发明实施例中,目标检测程序可以是EXE程序,例如QQ.EXE等,目标检测程序包括一个或多个DLL文件。所述DLL文件随目标检测程序启动而运行,DLL文件运行时将调用行为指令,从而实现目标检测程序的功能。
具体的,本发明装置获取目标检测程序的一个或多个DLL文件。具体实现过程中,本发明装置可先确定目标检测程序所在的文件目录,再获取文件目录下的一个或多个DLL文件。
例如,本发明装置根据目标检测程序的路径,找到目标检测程序的文件目录,文件目录可如图6所示,其中,Document1、Document2表示文件夹,X.EXE表示目标检测程序,A.DLL、B.DLL、E.DLL和F.DLL表示目标检测程序的DLL文件,C.SYS和D.DAT表示其它格式的文件,由于在文件类型上Loader病毒是DLL文件,因此本发明装置仅需获取文件目录下的DLL文件。需要指出的是,DLL文件可包括资源类(resource)的DLL文件,资源类的DLL文件常用于导出图标、光标、对话框或字符串等,因此其字节非常小,无法执行较复杂的行为指令,进而病毒作者不会将Loader病毒伪装或替换资源类的DLL文件,故进一步的,本发明装置仅需获取文件目录下的非资源类的DLL文件。
S102,提取所述目标检测程序的DLL文件的多个导出函数。
应理解,DLL文件所执行的指令是通过导出函数来实现的,每个DLL文件可有多个导出函数。
具体的,本发明装置提取目标检测程序的DLL文件的多个导出函数。具体实现过程中,本发明装置可通过以下方法提取导出函数:先获取目标检测程序的DLL文件中的多个函数地址,再提取多个函数地址分别对应的多个导出函数。其中,所述函数地址可指向导出函数的存储位置,因而本发明装置可根据导出函数的存储位置提取导出函数。
例如:本发明装置先获取到目标检测程序的DLL文件的三个函数地址,分别为address_A、address_B和address_C,再根据address_A、address_B和address_C分别提取其对应的导出函数A()、B()和C()。
S103,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒。
可选的,为了提高判断的准确性,本发明装置将先判断每个DLL文件的导出函数的个数是否大于预设个数阈值,在确定导出函数的个数大于预设个数阈值后,再执行下面的步骤。其中,预设个数阈值一般设置为2,即每个DLL文件的导出函数的个数应至少有3个,无导出函数或导出函数少于3个的DLL文件不具普遍性,会影响判断的准确性。
具体的,本发明装置判断在DLL文件的多个导出函数中是否有且仅有一个导出函数具有逻辑功能,若是,则确定目标检测程序的DLL文件是Loader病毒。本发明实施例作出上述判断的依据在于,为了欺骗终端,Loader病毒的导出函数的个数与正常DLL文件的导出函数的个数相同,假设正常的DLL文件的导出函数的个数为5个,那么Loader病毒的导出函数也为5个,但是,Loader病毒仅利用其中1个导出函数实现其行为指令,其它4个导出函数无任何作用,因而通常使用无用指令来填充其它4个导出函数。
可选的,本发明装置可以通过以下步骤来判断在DLL文件的多个导出函数中是否有且仅有一个导出函数具有逻辑功能:基于反汇编引擎,将DLL文件的导出函数由字节码转换为源代码;通过对转换为源代码的导出函数进行逻辑分析,判断在DLL文件的多个导出函数中是否有且仅有一个导出函数的源代码具有逻辑功能。需要指出的是,DLL文件的导出函数由字节码组成,而很难直接根据字节码判断DLL文件的导出函数有无逻辑功能,因此本发明装置可先通过反汇编引擎将导出函数由字节码转换为源代码,例如,本发明装置将字节码为“74”的语句转换为源代码为“GNZ”的汇编语句。然后,本发明装置对源代码进行逻辑分析,判断DLL文件的各个导出函数是否具有逻辑功能,如某个导出函数的源代码可对应用程序编程接口API进行调用,则说明该导出函数具有逻辑功能,又如某个导出函数的源代码均为“A():Xor eax,eax Retn”等占位用的无用指令,则说明该导出函数不具有逻辑功能。
进一步可选的,在判断导出函数有无逻辑功能的具体实现过程中,本发明装置可只对源代码的长度大于预设长度阈值的导出函数进行逻辑分析。原因在于,想要实现一定逻辑功能,其导出函数的源代码的长度必然不会太短,通过设置上述预设长度阈值,本发明装置可忽略对长度太短的源代码进行逻辑分析,并直接判定其不具备逻辑功能,例如:假设某个DLL文件有100个导出函数,而其中的80个导出函数的源代码的长度均不大于预设长度阈值,那么本发明装置可直接判定这80个导出函数无逻辑功能,进而只对剩下的20个导出函数的源代码进行逻辑分析。众所周知的,进行逻辑分析需要消耗一定的开销和时间,通过上述方法,本发明装置可节省开销和时间,增大效率,提高用户体验。
S104,清除或隔离所述目标检测程序。
具体的,本发明装置将清除或隔离被确定携带有Loader病毒的目标检测程序。
进一步可选的,本发明装置针对上述目标检测程序更新病毒数据库,当检测到出现目标检测程序时,向用户发出危险警报。其中,上述病毒数据库可以是云端数据库,其它终端可以通过互联网从云端数据库获取病毒资料。
本发明实施例通过提取目标检测程序的DLL文件的多个导出函数,判断在DLL文件的多个导出函数中是否有且仅有一个导出函数具有逻辑功能的方法,确定目标检测程序的DLL文件是否为Loader病毒,可以实现对Loader病毒的查杀,具有维护成本低和准确率高的特点。
图2是本发明实施例中另一种加载器Loader病毒的查杀方法的流程示意图,可以包括:
S201,确定所述目标检测程序所在的文件目录。
所述目标检测程序可以是终端上的任意一个应用程序,在本发明实施例中,目标检测程序可以是EXE程序,例如QQ.EXE等,目标检测程序包括一个或多个DLL文件。所述DLL文件随目标检测程序启动而运行,DLL文件运行时将调用行为指令,从而实现目标检测程序的功能。
具体的,本发明装置可确定目标检测程序所在的文件目录。例如,本发明装置根据目标检测程序的路径,找到目标检测程序的文件目录,文件目录可如图6所示,其中,Document1、Document2表示文件夹,X.EXE表示目标检测程序,A.DLL、B.DLL、E.DLL和F.DLL表示目标检测程序的DLL文件,C.SYS和D.DAT表示其它格式的文件。
S202,获取所述文件目录下的非资源类的DLL文件。
具体的,本发明装置获取文件目录下的一个或多个非资源类的DLL文件。需要指出的是,由于在文件类型上Loader病毒是DLL文件,因此本发明装置仅需获取文件目录下的DLL文件。另外,DLL文件可包括资源类(resource)的DLL文件,资源类的DLL文件常用于导出图标、光标、对话框或字符串等,因此其字节非常小,无法执行较复杂的行为指令,进而病毒作者不会将Loader病毒伪装或替换资源类的DLL文件,故进一步的,本发明装置仅需获取文件目录下的非资源类的DLL文件。
S203,获取所述目标检测程序的DLL文件中的多个函数地址。
应理解,DLL文件所执行的指令是通过导出函数来实现的,每个DLL文件可有多个导出函数,其中,所述函数地址可指向导出函数的存储位置,根据导出函数的存储位置可提取导出函数。
具体的,本发明装置提取目标检测程序的DLL文件的多个导出函数。
S204,提取所述多个函数地址分别对应的多个所述导出函数。
具体的,本发明装置提取多个函数地址分别对应的多个导出函数。例如:假设获取到目标检测程序的DLL文件的三个函数地址,分别为address_A、address_B和address_C,本发明装置根据address_A、address_B和address_C分别提取其对应的导出函数A()、B()和C()。
S205,判断所述DLL文件的导出函数的个数是否大于3个。
具体的,为了提高判断的准确性,本发明装置将判断每个DLL文件的导出函数的个数是否大于预设个数阈值,在确定导出函数的个数大于预设个数阈值后,再执行步骤S206。其中,预设个数阈值一般设置为2,即每个DLL文件的导出函数的个数应至少有3个,无导出函数或导出函数少于3个的DLL文件不具普遍性,会影响判断的准确性。
S206,基于反汇编引擎,将所述DLL文件的导出函数由字节码转换为源代码。
一般的,DLL文件的导出函数由字节码组成。具体的,本发明装置可通过反汇编引擎将导出函数由字节码转换为源代码,例如,本发明装置将字节码为“74”的语句转换为源代码为“GNZ”的汇编语句。
S207,获取所述源代码的长度大于预设长度阈值的导出函数。
具体的,本发明装置获取源代码的长度大于预设长度阈值的导出函数,并判定源代码的长度不大于预设长度阈值的导出函数不具备逻辑功能。原因在于,想要实现一定逻辑功能,其导出函数的源代码的长度必然不会太短,通过设置上述预设长度阈值,本发明装置可直接判定其不具备逻辑功能,例如:假设某个DLL文件有100个导出函数,而其中的80个导出函数的源代码的长度均不大于预设长度阈值,那么本发明装置可直接判定这80个导出函数无逻辑功能。
S208,通过对所述源代码的长度大于预设长度阈值的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒。
本发明实施例作出上述判断的依据在于,为了欺骗终端,Loader病毒的导出函数的个数与正常DLL文件的导出函数的个数相同,假设正常的DLL文件的导出函数的个数为5个,那么Loader病毒的导出函数也为5个,但是,Loader病毒仅利用其中1个导出函数实现其行为指令,其它4个导出函数无任何作用,因而通常使用无用指令来填充其它4个导出函数。
具体实现过程中,如某个导出函数的源代码可对应用程序编程接口API进行调用,则说明该导出函数具有逻辑功能,又如某个导出函数的源代码均为“A():Xor eax,eaxRetn”等占位用的无用指令,则说明该导出函数不具有逻辑功能。
需要指出的是,进行逻辑分析需要消耗一定的开销和时间,本发明实施例只对源代码长度大于预设长度阈值的导出函数进行逻辑分析,可见节省了开销和时间,增大效率,提高用户体验。例如:假设某个DLL文件有100个导出函数,而其中的80个导出函数的源代码的长度均不大于预设长度阈值,那么本发明装置可直接判定这80个导出函数无逻辑功能,进而只对剩下的20个导出函数的源代码进行逻辑分析。
S209,清除或隔离所述目标检测程序。
具体的,本发明装置将清除或隔离被确定携带有Loader病毒的目标检测程序。
进一步可选的,本发明装置针对上述目标检测程序更新病毒数据库,当检测到出现目标检测程序时,向用户发出危险警报。其中,上述病毒数据库可以是云端数据库,其它终端可以通过互联网从云端数据库获取病毒资料。
本发明实施例通过提取目标检测程序的DLL文件的多个导出函数,判断在DLL文件的多个导出函数中是否有且仅有一个导出函数具有逻辑功能的方法,确定目标检测程序的DLL文件是否为Loader病毒,可以实现对Loader病毒的查杀,具有维护成本低和准确率高的特点。
图3是本发明实施例中一种加载器Loader病毒的查杀装置的结构示意图。如图所示本发明实施例中的加载器Loader病毒的查杀装置至少可以包括文件获取模块310、函数提取模块320、病毒确定模块330以及病毒处理模块340,其中:
文件获取模块310,用于获取目标检测程序的动态链接库DLL文件。具体的,所述文件获取模块310可以如图4所示进一步包括:目录确定单元311和文件获取单元312,其中:
目录确定单元311,用于确定所述目标检测程序所在的文件目录。
所述目标检测程序可以是终端上的任意一个应用程序,在本发明实施例中,目标检测程序可以是EXE程序,例如QQ.EXE等,目标检测程序包括一个或多个DLL文件。所述DLL文件随目标检测程序启动而运行,DLL文件运行时将调用行为指令,从而实现目标检测程序的功能。
具体的,目录确定单元311可确定目标检测程序所在的文件目录。例如,目录确定单元311根据目标检测程序的路径,找到目标检测程序的文件目录,文件目录可如图6所示,其中,Document1、Document2表示文件夹,X.EXE表示目标检测程序,A.DLL、B.DLL、E.DLL和F.DLL表示目标检测程序的DLL文件,C.SYS和D.DAT表示其它格式的文件。
文件获取单元312,用于获取所述文件目录下的非资源类的DLL文件。
具体的,文件获取单元312获取文件目录下的一个或多个非资源类的DLL文件。需要指出的是,由于在文件类型上Loader病毒是DLL文件,因此文件获取单元312仅需获取文件目录下的DLL文件。另外,DLL文件可包括资源类(resource)的DLL文件,资源类的DLL文件常用于导出图标、光标、对话框或字符串等,因此其字节非常小,无法执行较复杂的行为指令,进而病毒作者不会将Loader病毒伪装或替换资源类的DLL文件,故进一步的,文件获取单元312仅需获取文件目录下的非资源类的DLL文件。
函数提取模块320,用于提取所述目标检测程序的DLL文件的多个导出函数。所述函数提取模块320可以如图5所示进一步包括:地址获取单元321和函数提取单元322,其中:
地址获取单元321,用于获取所述目标检测程序的DLL文件中的多个函数地址。
应理解,DLL文件所执行的指令是通过导出函数来实现的,每个DLL文件可有多个导出函数,其中,所述函数地址可指向导出函数的存储位置,根据导出函数的存储位置可提取导出函数。
具体的,地址获取单元321提取目标检测程序的DLL文件的多个导出函数。
函数提取单元322,用于提取所述多个函数地址分别对应的多个所述导出函数。
具体的,函数提取单元322提取多个函数地址分别对应的多个导出函数。例如:假设获取到目标检测程序的DLL文件的三个函数地址,分别为address_A、address_B和address_C,函数提取单元322根据address_A、address_B和address_C分别提取其对应的导出函数A()、B()和C()。
病毒确定模块330,用于判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒。
具体的,病毒确定模块330判断在DLL文件的多个导出函数中是否有且仅有一个导出函数具有逻辑功能,若是,则确定目标检测程序的DLL文件是Loader病毒。本发明实施例作出上述判断的依据在于,为了欺骗终端,Loader病毒的导出函数的个数与正常DLL文件的导出函数的个数相同,假设正常的DLL文件的导出函数的个数为5个,那么Loader病毒的导出函数也为5个,但是,Loader病毒仅利用其中1个导出函数实现其行为指令,其它4个导出函数无任何作用,因而通常使用无用指令来填充其它4个导出函数。
病毒处理模块340,用于清除或隔离所述目标检测程序。
具体的,病毒处理模块340将清除或隔离被确定携带有Loader病毒的目标检测程序。
进一步可选的,病毒处理模块340针对上述目标检测程序更新病毒数据库,当检测到出现目标检测程序时,向用户发出危险警报。其中,上述病毒数据库可以是云端数据库,其它终端可以通过互联网从云端数据库获取病毒资料。
可选的,请参阅图3,如图所示本发明实施例中的加载器Loader病毒的查杀装置还可以包括阈值确定模块350,用于在所述病毒确定模块330判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能之前,确定所述DLL文件的导出函数的个数大于预设个数阈值。
具体的,为了提高判断的准确性,阈值确定模块350将先判断每个DLL文件的导出函数的个数是否大于预设个数阈值,在确定导出函数的个数大于预设个数阈值后,再触发病毒确定模块330判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能。其中,预设个数阈值一般设置为2,即每个DLL文件的导出函数的个数应至少有3个,无导出函数或导出函数少于3个的DLL文件不具普遍性,会影响判断的准确性。
可选的,请参阅图3,如图所示本发明实施例中的加载器Loader病毒的查杀装置还可以包括代码转换模块360,用于基于反汇编引擎,将所述DLL文件的导出函数由字节码转换为源代码。
相应的,病毒确定模块330,具体用于通过对转换为源代码的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能。
需要指出的是,DLL文件的导出函数由字节码组成,而很难直接根据字节码判断DLL文件的导出函数有无逻辑功能,因此代码转换模块360可先通过反汇编引擎将导出函数由字节码转换为源代码,例如,代码转换模块360将字节码为“74”的语句转换为源代码为“GNZ”的汇编语句。然后,病毒确定模块330对源代码进行逻辑分析,判断DLL文件的各个导出函数是否具有逻辑功能,如某个导出函数的源代码可对应用程序编程接口API进行调用,则说明该导出函数具有逻辑功能,又如某个导出函数的源代码均为“A():Xor eax,eaxRetn”等占位用的无用指令,则说明该导出函数不具有逻辑功能。
进一步可选的,请参阅图3,如图所示本发明实施例中的加载器Loader病毒的查杀装置还可以包括函数筛选模块370,用于获取所述源代码的长度大于预设长度阈值的导出函数。
相应的,病毒确定模块330,具体用于通过对所述源代码的长度大于预设长度阈值的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能。
原因在于,想要实现一定逻辑功能,其导出函数的源代码的长度必然不会太短,通过设置上述预设长度阈值,病毒确定模块330可忽略对长度太短的源代码进行逻辑分析,并直接判定其不具备逻辑功能,例如:假设某个DLL文件有100个导出函数,而其中的80个导出函数的源代码的长度均不大于预设长度阈值,那么函数筛选模块370可直接判定这80个导出函数无逻辑功能,进而病毒确定模块330只对剩下的20个导出函数的源代码进行逻辑分析。众所周知的,进行逻辑分析需要消耗一定的开销和时间,通过上述方法,病毒确定模块330可节省开销和时间,增大效率,提高用户体验。
请参阅图7,本发明实施例提供了另一种加载器Loader病毒的查杀装置的结构示意图,该查杀装置可以用于实施图1~图2的实施例中提供的加载器Loader病毒的查杀方法。具体来讲:
查杀装置400可以包括网络接口410、包括有一个或一个以上计算机可读存储介质的存储器420、输入单元430、显示单元440、电源450、包括有一个或者一个以上处理核心的处理器460等部件。本领域技术人员可以理解,图7中示出的结构并不构成对查杀装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
网络接口410可用于接入网络,具体实现过程可以用宽带网络接口、WiFi(wireless fidelity,无线保真)模块或RF(Radio Frequency,射频)模块来实现。
存储器420可用于存储软件程序以及模块,处理器460通过运行存储在存储器420的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器460可主要包括存储程序区和存储数据区。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器420还可以包括存储器控制器,以提供处理器460和输入单元430对存储器420的访问。
输入单元430可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元430可包括触摸屏或键鼠431以及其他输入设备432。触摸屏或键鼠431,包括触摸屏或键鼠,触摸屏也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在接触面上或在接触面附近的操作),并根据预先设定的程式驱动相应的连接装置。除了触摸屏或键鼠431,输入单元430还可以包括其他输入设备432。键鼠包括物理键盘和物理鼠标。另外,其他输入设备432可以包括但不限于功能键(比如音量控制按键、开关按键等)、轨迹球、操作杆等中的一种或多种。
显示单元440可用于显示由用户输入的信息或提供给用户的信息以及查杀装置400的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元440可包括显示面板441,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板441。
查杀装置400还包括给各个部件供电的电源450(比如电池),优选的,电源可以通过电源管理***与处理器460逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源450还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
处理器460是查杀装置的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器420内的软件程序和/或模块,以及调用存储在存储器420内的数据,执行各种功能和处理数据。可选的,处理器460可包括一个或多个处理核心;优选的,处理器460可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理通信。可以理解的是,上述调制解调处理器也可以不集成到处理器460中。
进一步的,处理器460调用存储器420中存储的程序代码,用于执行以下操作:
获取目标检测程序的动态链接库DLL文件;
提取所述目标检测程序的DLL文件的多个导出函数;
判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒;
清除或隔离所述目标检测程序。
本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以通过计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟或光盘)中,包括若干指令用以控制终端执行本发明实施例图1~图2所描述的加载器Loader病毒的查杀方法中的部分或全部的步骤。
本发明实施例通过提取目标检测程序的DLL文件的多个导出函数,判断在DLL文件的多个导出函数中是否有且仅有一个导出函数具有逻辑功能的方法,从而确定目标检测程序的DLL文件是否为Loader病毒,可以实现对Loader病毒的查杀,具有维护成本低和准确率高的特点。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (17)
1.一种加载器Loader病毒的查杀方法,其特征在于,所述方法包括:
获取目标检测程序的动态链接库DLL文件;
提取所述目标检测程序的DLL文件的多个导出函数;
判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒;
清除或隔离所述目标检测程序;
其中,所述判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,包括:
基于反汇编引擎,将所述DLL文件的导出函数由字节码转换为源代码;
通过对转换为源代码的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能。
2.如权利要求1所述的方法,其特征在于,所述获取目标检测程序的动态链接库DLL文件,包括:
确定所述目标检测程序所在的文件目录;
获取所述文件目录下的非资源类的DLL文件。
3.如权利要求1所述的方法,其特征在于,所述提取所述目标检测程序的DLL文件的多个导出函数,包括:
获取所述目标检测程序的DLL文件中的多个函数地址;
提取所述多个函数地址分别对应的多个所述导出函数。
4.如权利要求1所述的方法,其特征在于,所述通过对转换为源代码的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能,包括:
获取所述源代码的长度大于预设长度阈值的导出函数;
通过对所述源代码的长度大于预设长度阈值的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能。
5.如权利要求4所述的方法,其特征在于,所述源代码具有逻辑功能包括:
所述源代码对应用程序编程接口API进行调用。
6.如权利要求1所述的方法,其特征在于,所述判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能之前,还包括:
确定所述DLL文件的导出函数的个数大于预设个数阈值。
7.如权利要求6所述的方法,其特征在于,所述预设个数阈值是2。
8.如权利要求1-7任一项所述的方法,其特征在于,所述清除或隔离所述目标检测程序之后,还包括:
针对所述目标检测程序更新病毒数据库;
当检测到出现所述目标检测程序时,向用户发出危险警报。
9.一种加载器Loader病毒的查杀装置,其特征在于,所述查杀装置包括:
文件获取模块,用于获取目标检测程序的动态链接库DLL文件;
函数提取模块,用于提取所述目标检测程序的DLL文件的多个导出函数;
病毒确定模块,用于判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能,若是,则确定所述目标检测程序的DLL文件是所述Loader病毒;
病毒处理模块,用于清除或隔离所述目标检测程序;其中,
代码转换模块,用于基于反汇编引擎,将所述DLL文件的导出函数由字节码转换为源代码;
所述病毒确定模块,具体用于通过对转换为源代码的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能。
10.如权利要求9所述的查杀装置,其特征在于,所述文件获取模块,包括:
目录确定单元,用于确定所述目标检测程序所在的文件目录;
文件获取单元,用于获取所述文件目录下的非资源类的DLL文件。
11.如权利要求9所述的查杀装置,其特征在于,所述函数提取模块,包括:
地址获取单元,用于获取所述目标检测程序的DLL文件中的多个函数地址;
函数提取单元,用于提取所述多个函数地址分别对应的多个所述导出函数。
12.如权利要求9所述的查杀装置,其特征在于,所述查杀装置还包括:
函数筛选模块,用于获取所述源代码的长度大于预设长度阈值的导出函数;
所述病毒确定模块,具体用于通过对所述源代码的长度大于预设长度阈值的导出函数进行逻辑分析,判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数的源代码具有逻辑功能。
13.如权利要求11所述的查杀装置,其特征在于,所述源代码具有逻辑功能包括:
所述源代码对应用程序编程接口API进行调用。
14.如权利要求9所述的查杀装置,其特征在于,所述查杀装置还包括:
阈值确定模块,用于在所述病毒确定模块判断在所述DLL文件的多个导出函数中是否有且仅有一个所述导出函数具有逻辑功能之前,确定所述DLL文件的导出函数的个数大于预设个数阈值。
15.如权利要求14所述的查杀装置,其特征在于,所述预设个数阈值是2。
16.如权利要求9-15任一项所述的查杀装置,其特征在于,所述病毒处理模块,还用于针对所述目标检测程序更新病毒数据库;当检测到出现所述目标检测程序时,向用户发出危险警报。
17.一种终端,其特征在于,所述终端包括如权利要求9-16任一项所述的查杀装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410458394.5A CN104200164B (zh) | 2014-09-10 | 2014-09-10 | 一种加载器Loader病毒的查杀方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410458394.5A CN104200164B (zh) | 2014-09-10 | 2014-09-10 | 一种加载器Loader病毒的查杀方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104200164A CN104200164A (zh) | 2014-12-10 |
CN104200164B true CN104200164B (zh) | 2017-07-25 |
Family
ID=52085455
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410458394.5A Active CN104200164B (zh) | 2014-09-10 | 2014-09-10 | 一种加载器Loader病毒的查杀方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104200164B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104965777B (zh) * | 2015-02-04 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 一种安全测试的方法、装置及*** |
CN105653953B (zh) * | 2015-12-24 | 2019-04-26 | 珠海豹趣科技有限公司 | 一种病毒查杀方法及装置 |
CN108604273B (zh) * | 2016-01-27 | 2022-09-16 | 慧与发展有限责任合伙企业 | 防止恶意软件下载 |
CN110069936A (zh) * | 2019-03-29 | 2019-07-30 | 合肥高维数据技术有限公司 | 一种木马隐写方法和检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373501A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 针对计算机病毒的动态行为捕获方法 |
CN103632093A (zh) * | 2013-09-17 | 2014-03-12 | 中国人民解放军61599部队计算所 | 木马检测方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130055369A1 (en) * | 2011-08-24 | 2013-02-28 | Mcafee, Inc. | System and method for day-zero authentication of activex controls |
-
2014
- 2014-09-10 CN CN201410458394.5A patent/CN104200164B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373501A (zh) * | 2008-05-12 | 2009-02-25 | 公安部第三研究所 | 针对计算机病毒的动态行为捕获方法 |
CN103632093A (zh) * | 2013-09-17 | 2014-03-12 | 中国人民解放军61599部队计算所 | 木马检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104200164A (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9438620B2 (en) | Control flow graph representation and classification | |
Ham et al. | Analysis of android malware detection performance using machine learning classifiers | |
CN104050417B (zh) | 一种在移动终端对软件状态进行检测的方法及装置 | |
EP4250081A2 (en) | Notification display method and terminal | |
CN105005735B (zh) | 下载管理方法和下载管理装置 | |
CN104200164B (zh) | 一种加载器Loader病毒的查杀方法、装置及终端 | |
CN103065090B (zh) | 一种应用程序恶意广告拦截方法及装置 | |
CN105446864B (zh) | 缓存文件删除影响的校验方法、装置及移动终端 | |
CN107346284B (zh) | 一种应用程序的检测方法及检测装置 | |
CN104268473B (zh) | 应用程序检测方法和装置 | |
CN104123496B (zh) | 一种流氓软件的拦截方法及装置、终端 | |
CN104769598A (zh) | 用于检测非法应用程序的***和方法 | |
CN103810428A (zh) | 一种宏病毒检测方法及装置 | |
CN109977671A (zh) | 一种基于编译器修改的Android锁屏型勒索软件检测方法 | |
CN105488414A (zh) | 一种防止恶意代码探测虚拟环境的方法及*** | |
KR101256468B1 (ko) | 악성 파일 진단 장치 및 방법 | |
CN105975302A (zh) | 一种应用安装方法及终端 | |
US10296743B2 (en) | Method and device for constructing APK virus signature database and APK virus detection system | |
GB2512482A (en) | Verification program, verification method, and verification device | |
CN101833496B (zh) | 基于硬盘的主机防客体重用性能的检测装置及其检测方法 | |
CN106302531B (zh) | 安全防护方法、装置及终端设备 | |
CN105844162B (zh) | 一种虚拟化平台下windows虚拟机漏洞扫描的方法 | |
US9646157B1 (en) | Systems and methods for identifying repackaged files | |
CN105893221A (zh) | 终端运行时长的告警方法及装置 | |
CN103885773B (zh) | 跨页面实现应用程序app功能的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20181129 Address after: Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee after: Zhuhai Leopard Technology Co.,Ltd. Address before: 100085 East District, Second Floor, 33 Xiaoying West Road, Haidian District, Beijing Patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. |