CN103679027A - 内核级恶意软件查杀的方法和装置 - Google Patents
内核级恶意软件查杀的方法和装置 Download PDFInfo
- Publication number
- CN103679027A CN103679027A CN201310652289.0A CN201310652289A CN103679027A CN 103679027 A CN103679027 A CN 103679027A CN 201310652289 A CN201310652289 A CN 201310652289A CN 103679027 A CN103679027 A CN 103679027A
- Authority
- CN
- China
- Prior art keywords
- data structure
- antivirus software
- operating system
- place ahead
- killing
- 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
Images
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
-
- 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/568—Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
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)
- Virology (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种内核级恶意软件查杀的方法和装置,涉及计算机技术领域。该方法包括:获取操作***中记录的正在运行的进程间指向关系的数据结构;定位已加载的杀毒软件进程的前方进程和后方进程,其中,前方进程为杀毒软件进程所指向的进程,后方进程为指向杀毒软件进程的进程;将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程。通过本发明,可以在操作***中用于记录进程间指向关系的数据结构中隐藏杀毒软件的进程,使得恶意程序无法通过编辑该数据结构得到杀毒软件的进程信息,进而无法关闭杀毒软件的进程,保证了杀毒软件能够对恶意程序进行查杀,并通过已隐藏的杀毒软件对操作***进行恶意软件的查杀,提高了安全性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种内核级恶意软件查杀的方法和装置。
背景技术
目前随着杀毒软件的日益完善,病毒木马与杀软的对抗已经由过去的,免杀逃避等被动行为,转变为主动对抗结束杀软进程等主动行为。恶意程序会根据杀毒软件的名称扫描在操作***中运行的杀毒软件的进程,并结束杀毒软件的进程,使得杀毒软件不能执行杀毒操作。
比如2012年肆虐我国的十大计算机病毒中的排名第一和第二的病毒,鬼影系列和AV(Anti-Virus,反病毒)终结者系列都会结束杀毒软件的进程,导致中毒后极难查杀。这些病毒会在感染***后,加载驱动枚举所有的进程,发现是杀软的进程就一律终止进程。由于在内核级进行的处理,导致对抗很困难。
现有的一些技术方案是通过一些专杀,更改名字来进行处理,但由于只要供用户下载的软件,都可以被恶意程序作者获得,所以还是可以被木马加入终止列表中。
一般情况下,只能让用户手动修改随机杀毒软件的名字,来进行启动,但是这种方式导致了很大的麻烦,同时很多杀软自保是根据名字来进行保护的,修改名字也会导致自保失效。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的适于内核级恶意软件查杀的方法和相应地装置。
依据本发明的一个方面,提供一种内核级恶意软件查杀的方法,包括:
获取操作***中记录当前正在运行的进程间指向关系的数据结构;
在数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,其中,前方进程为杀毒软件进程所指向的进程,后方进程为指向杀毒软件进程的进程;
将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程;
通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
可选地,获取操作***中记录当前正在运行的进程间指向关系的数据结构,包括:
接收用户对内核级的恶意软件的查杀请求;
通过预先启动的保护工具执行获取操作***中记录当前正在运行的进程间指向关系的数据结构的操作。
可选地,获取操作***中记录当前正在运行的进程间指向关系的数据结构,包括:
在内存中读取用于记录操作***当前正在运行的进程的进程信息的双向链表;
在双向链表中读取用于记录进程间指向关系的数据结构。
可选地,双向链表为PsAcvtiveProcessList链表。
可选地,数据结构为EPROCESS结构;
其中,EPROCESS结构中包括LIST_ENTRY结构,LIST_ENTRY结构中包括指针成员FLINK和BLINK,FLINK中记录的指针用于指向当前EPROCESS结构所属进程的前方进程,BLINK中记录的指针用于指向当前EPROCESS结构所属进程的后方进程。
可选地,在数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,包括:
查找与已加载的杀毒软件进程对应的EPROCESS结构;
读取EPROCESS结构中的指针成员FLINK和BLINK所记录的指针;
通过指针成员FLINK和BLINK所记录的指针定位杀毒软件的前方进程和后方进程。
可选地,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,包括:
在所述双向链表中摘除所述杀毒软件进程的自身信息。
可选地,在所述双向链表中摘除所述杀毒软件进程的自身信息,包括:
将前方进程对应的EPROCESS结构中的BLINK中记录的指针修改为指向后方进程;
将后方进程对应的EPROCESS结构中的FLINK中记录的指针修改为指向前方进程。
依据本发明的一个方面,还提供了一种内核级恶意软件查杀的装置,包括:
数据结构获取模块,配置为获取操作***中记录当前正在运行的进程间指向关系的数据结构;
进程定位模块,配置为在数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,其中,前方进程为杀毒软件进程所指向的进程,后方进程为指向杀毒软件进程的进程;
指向关系修改模块,配置为将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程;
查杀模块,配置为通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
可选地,所述数据结构获取模块配置为按照如下方式获取操作***中记录当前正在运行的进程间指向关系的数据结构:
接收用户对内核级的恶意软件的查杀请求;
通过预先启动的保护工具执行获取操作***中记录当前正在运行的进程间指向关系的数据结构的操作。
可选地,数据结构获取模块包括:
链表获取单元,配置为在内存中读取用于记录操作***当前正在运行的进程的进程信息的双向链表;
数据结构读取单元,配置为在双向链表中读取用于记录进程间指向关系的数据结构。
可选地,链表获取单元获取的双向链表为PsAcvtiveProcessList链表。
可选地,数据结构为EPROCESS结构;
其中,EPROCESS结构中包括LIST_ENTRY结构,LIST_ENTRY结构中包括指针成员FLINK和BLINK,FLINK中记录的指针用于指向当前EPROCESS结构所属进程的前方进程,BLINK中记录的指针用于指向当前EPROCESS结构所属进程的后方进程。
可选地,进程定位模块包括:
数据结构查找单元,配置为查找与已加载的杀毒软件进程对应的EPROCESS结构;
指针读取单元,配置为读取EPROCESS结构中的指针成员FLINK和BLINK所记录的指针;
进程定位单元,配置为通过指针成员FLINK和BLINK所记录的指针定位杀毒软件的前方进程和后方进程。
可选地,所述指向关系修改模块配置为在所述双向链表中摘除所述杀毒软件进程的自身信息。
可选地,指向关系修改模块配置为按照如下方式在所述双向链表中摘除所述杀毒软件进程的自身信息:
将前方进程对应的EPROCESS结构中的BLINK中记录的指针修改为指向后方进程;
将后方进程对应的EPROCESS结构中的FLINK中记录的指针修改为指向前方进程。
本发明提供了一种内核级恶意软件查杀的方法和装置,本发明通过获取操作***中记录当前正在运行的进程间指向关系的数据结构,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,并将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程,可以在操作***中用于记录进程间指向关系的数据结构中隐藏杀毒软件的进程,使得恶意程序无法通过编辑该数据结构得到杀毒软件的进程信息,进而无法关闭杀毒软件的进程,保证了杀毒软件能够正常的对恶意程序进行查杀,并通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀,提高了安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明一个实施例的一种内核级恶意软件查杀的方法流程图;
图2是根据本发明一个实施例的一种内核级恶意软件查杀的具体方法流程图;
图3是根据本发明一个实施例的双向链表的结构示意图;
图4是根据本发明一个实施例的修改指向关系后的双向链表的结构示意图;
图5是根据本发明一个实施例的一种内核级恶意软件查杀的装置结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应该被这里阐述的实施例所限制。相反,提供这些实施例是为了能够透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例可以应用于计算机***/服务器,其可与众多其它通用或专用计算***环境或配置一起操作。适于与计算机***/服务器一起使用的众所周知的计算***、环境和/或配置的例子包括但不限于:个人计算机***、服务器计算机***、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的***、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机***﹑大型计算机***和包括上述任何***的分布式云计算技术环境,等等。
计算机***/服务器可以在由计算机***执行的计算机***可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机***/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算***存储介质上。
实施例一
本发明实施例提供了一种内核级恶意软件查杀的方法。该方法对内核级恶意软件查杀的装置进行了改进。例如,本实施例中内核级恶意软件查杀的装置可以为安装在客户端上的工具,其中,客户端可以为PC(Personal Computer,个人计算机),手机,手持电脑等用户终端,并且该客户端可以运行基于云安全的病毒查杀***,结合云安全服务器等,以及处理各种不同类型文件的病毒扫描引擎,主动防御模块等,对恶意软件查杀处理。
图1是根据本发明一个实施例的一种内核级恶意软件查杀的方法流程图,该方法包括步骤S102至S108。
S102,获取操作***中记录当前正在运行的进程间指向关系的数据结构。
S104,在数据结构中定位已加载的杀毒软件进程的前方进程和后方进程。
其中,前方进程为杀毒软件进程所指向的进程,后方进程为指向杀毒软件进程的进程。
S106,将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程。
S108,通过已隐藏的杀毒软件对操作***进行恶意软件的查杀。
本发明实施例提供了一种内核级恶意软件查杀的方法,该方法通过获取操作***中记录当前正在运行的进程间指向关系的数据结构,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,并将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程,可以在操作***中用于记录进程间指向关系的数据结构中隐藏杀毒软件的进程,使得恶意程序无法通过编辑该数据结构得到杀毒软件的进程信息,进而无法关闭杀毒软件的进程,保证了杀毒软件能够正常的对恶意程序进行查杀,并通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀,提高了安全性。
实施例二
本实施例为上述实施例一的一种具体应用场景,通过本实施例,能够更加清楚、具体地阐述本发明所提供的方法。
图2是根据本发明一个实施例的一种内核级恶意软件查杀的具体方法流程图,该方法包括步骤S201至S208。
需要说明的是,该方法可以通过驱动实现在杀毒软件中,使得杀毒软件在启动时,即可自动隐藏自身进程,使得恶意程序不能发现杀毒软件的进程存在,进而进行恶意程序的扫描和清除操作。
首先,执行步骤S201,接收用户对内核级的恶意软件的查杀请求,启动预设的保护工具,运行用于隐藏杀毒软件的驱动。
本实施例通过驱动实现对杀毒软件的进程的隐藏,当检测到杀毒软件启动时,即立刻运行驱动将杀毒软件的进程隐藏。
上述驱动既可以实现在杀毒软件中,也可以实现在杀毒软件的保护工具中,该保护工具可以是保险箱等。
其中,该驱动利用了操作***中提供的DKOM(Direct Kernel ObjectManipulation,直接内核对象操作)技术。所有的操作***都在内存中存储特定信息,通常采用结构或对象的形式,由对象管理器管理。当用户空间进程请求操作***信息例如进程、线程或设备驱动程序列表时,这些对象被报告给用户。这些对象或结构位于内存中,因此可以直接对其进行修改。
例如,在Windows操作***中,隐藏进程主要关注的windows关键数据结构是:进程的EPROCESS结构与线程的ETHREAD结构、链表(如进程、线程链表与CPU的调度链表)等等。本发明通过DKOM对这些数据结构进行操作来达到隐藏进程的目的。
接着,执行步骤S202,即在内存中读取用于记录操作***中当前正在运行的进程的进程信息的双向链表。
本实施例以Windows操作***为例,该双向列表为:PsAcvtiveProcessList链表。
需要说明的是,在Windows操作***中,当***启动以后,会建立名称为PsAcvtiveProcessList的链表,通过该链表保存当前操作***中正在运行的进程的进程信息。
其中,恶意程序也是通过扫描该链表得到杀毒软件的进程的进程信息。
在读取到双向链表之后,执行步骤S203,在上述双向链表中读取用于记录进程间指向关系的数据结构。
其中,在Windows操作***中,上述数据结构即为EPROCESS结构。
在PsAcvtiveProcessList链表中,具有所有进程的EPROCESS结构,每个EPROCESS结构用于保存一个进程的进程信息。
本实施例还提供了图3,展示了双向链表(PsAcvtiveProcessList)的结构示意图。
需要说明的是,在每一个EPROCESS结构中,都具有一个具有指针成员FLINK和BLINK的LIST_ENTRY结构;
其中,FLINK用于记录指向当前进程的前方进程的指针;
BLINK用于记录指向当前进程的后方进程的指针。
在读取到用于记录进程间指向关系的数据结构之后,继续执行步骤S204。在步骤S204中,在数据结构中查找与已加载的杀毒软件进程对应的EPROCESS结构。
需要说明的是,在PsAcvtiveProcessList链表中,每个进程对应于一个EPROCESS结构,且所有进程的EPROCESS结构采用双向链表的方式保存,通过遍历该PsAcvtiveProcessList链表,依次读取进程信息,即可获取已加载的杀毒软件对应的EPROCESS结构。
在执行完步骤S204之后,继续通过步骤S205来读取与杀毒软件对应的EPROCESS结构中的FLINK和BLINK所记录的指针。
其中,EPROCESS结构中的FLINK和BLINK分别用于保存当前进程的前方进程和后方进程的指针,通过获取FLINK和BLINK成员,即可知道当前杀毒软件进程的前方进程和后方进程。
接下来,继续执行步骤S206,即通过上述获取得到的FLINK和BLINK所记录的指针定位得到杀毒软件的前方进程和后方进程。
需要说明的是,通过该步骤,即可得到杀毒软件的进程的前方进程和后方进程对应的EPROCESS结构。
接着,执行步骤S207,在上述双向链表中摘除杀毒软件进程的自身信息。
其中,在上述双向链表中摘除杀毒软件进程的自身信息也即将上述前方进程和后方进程的指向关系修改为后方进程直接指向前方进程。
由于在操作***中,通过PsAcvtiveProcessList链表中的EPROCESS结构记录进程间的指向关系,因此,在本实施例中,步骤S207具体可通过如下方式实现:
将前方进程对应的EPROCESS结构中的BLINK中记录的指针修改为指向后方进程;
将后方进程对应的EPROCESS结构中的FLINK中记录的指针修改为指向前方进程。
本实施例还提供了图4,展示了修改指向关系后的双向链表(PsAcvtiveProcessList)的结构示意图。
通过上述方式,可以在PsAcvtiveProcessList链表中隐藏杀毒软件的进程的EPROCESS结构,使得恶意程序不能读取到杀毒软件的进程的进程信息,即使调用***服务ZwQuerySystemInformation也无法找到杀毒软件的进程。而且,并不会影响杀毒软件的进程的运行。
最后,执行步骤S208,通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
需要说明的是,由于经过步骤S201-S207,杀毒软件已经被隐藏,恶意软件无法关闭杀毒软件,因此可开始进行恶意软件的查杀操作。
其中,本发明提供的杀毒软件,可以适用于检测顽固病毒,并可以适用于进行木马扫描、清理功能、MBR(Master Boot Record,即硬盘的主引导记录)修复功能等功能。
本发明所提供的杀毒软件包含顽固病毒和木马扫描、清理功能。为了帮助用户清理电脑***中的顽固病毒、木马,本软件在扫描到计算机病毒时,会自动删除病毒文件或者锁定病毒文件禁止其运行。本发明所提供的杀毒软件将对***的关键项进行扫描并自动处理***异常情况。查杀结果将在列表中呈现。用户可以在文件隔离区中对部分文件操作进行恢复。
本发明所提供的杀毒软件通过查杀驱动木马等***底层运行的木马来保护***的正常运行。扫描过程中会对***中存在的恶意服务、驱动进行查杀。由于查杀在某些情况下可能造成***无法正常启动,本软件会在***中增加一个启动项,用户在修复后如无法启动,可以通过该启动项尝试进行修复。
本发明所提供的杀毒软件具有***文件修复功能。该功能会对您***中的操作***自有的关键动态链接库文件(Dynamic Link Library,以下简称DLL文件)进行扫描。当发现缺失的DLL文件时,本软件会从云查询服务器上对丢失的DLL文件进行查询,再选择一个适合用户当前***的DLL文件下载到用户机器上。此功能可以解决因为木马恶意破坏或其它原因导致***DLL文件缺失,而致使您的电脑无法正常工作的问题。用户也可以手动输入缺失的DLL文件的名称进行查找、修复。
本发明所提供的杀毒软件具有MBR修复功能。有些木马会感染计算机的MBR来达到隐藏自身并反复感染计算机***的目的。该功能可以帮助用户清除MBR中的恶意代码。
并且本发明所提供的杀毒软件可以结合使云安全技术,其原理是采集用户电脑上文件的指纹,发送到云服务器上进行分析,从而鉴定文件的安全级别。文件指纹是根据国际通用标准算法计算出的文件唯一标识信息,通常为数十个字节的数字、字母组合,经常使用的算法如MD5(Message Digest Algorithm 5,消息摘要算法第五版)、SHA1(Secure Hash Algorithm1,安全哈希算法第一版)等。
本发明所提供的保护工具,能够发现的可疑的可执行程序样本上传至云服务器,由工程师进行分析。并且上传的样本仅限于用于病毒分析的PE文件,云安全中心服务器已有的样本不会再上传。
本发明实施例提供了一种内核级恶意软件查杀的方法,该方法通过获取操作***中记录当前正在运行的进程间指向关系的数据结构,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,并将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程,可以在操作***中用于记录进程间指向关系的数据结构中隐藏杀毒软件的进程,使得恶意程序无法通过编辑该数据结构得到杀毒软件的进程信息,进而无法关闭杀毒软件的进程,保证了杀毒软件能够正常的对恶意程序进行查杀,并通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀,提高了安全性。
实施例三
图5是本发明一个实施例提供的一种内核级恶意软件查杀的装置结构框图,该装置500包括:
数据结构获取模块510,配置为获取操作***中记录当前正在运行的进程间指向关系的数据结构;
进程定位模块520,配置为在数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,其中,前方进程为杀毒软件进程所指向的进程,后方进程为指向杀毒软件进程的进程;
指向关系修改模块530,配置为将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程;
查杀模块540,配置为通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
可选地,所述数据结构获取模块配置510为按照如下方式获取操作***中记录当前正在运行的进程间指向关系的数据结构:
接收用户对内核级的恶意软件的查杀请求;
通过预先启动的保护工具执行获取操作***中记录当前正在运行的进程间指向关系的数据结构的操作。
可选地,数据结构获取模块510包括:
链表获取单元511,配置为在内存中读取用于记录操作***当前正在运行的进程的进程信息的双向链表;
数据结构读取单元512,配置为在双向链表中读取用于记录进程间指向关系的数据结构。
可选地,链表获取单元511获取的双向链表为PsAcvtiveProcessList链表。
可选地,数据结构为EPROCESS结构;
其中,EPROCESS结构中包括LIST_ENTRY结构,LIST_ENTRY结构中包括指针成员FLINK和BLINK,FLINK中记录的指针用于指向当前EPROCESS结构所属进程的前方进程,BLINK中记录的指针用于指向当前EPROCESS结构所属进程的后方进程。
可选地,进程定位模块520包括:
数据结构查找单元521,配置为查找与已加载的杀毒软件进程对应的EPROCESS结构;
指针读取单元522,配置为读取EPROCESS结构中的指针成员FLINK和BLINK所记录的指针;
进程定位单元523,配置为通过指针成员FLINK和BLINK所记录的指针定位杀毒软件的前方进程和后方进程。
可选地,所述指向关系修改模块配置530为在上述双向链表中摘除杀毒软件进程的自身信息。
可选地,指向关系修改模块530配置为按照如下方式在上述双向链表中摘除杀毒软件进程的自身信息:
将前方进程对应的EPROCESS结构中的BLINK中记录的指针修改为指向后方进程;
将后方进程对应的EPROCESS结构中的FLINK中记录的指针修改为指向前方进程。
本发明实施例提供了一种内核级恶意软件查杀的装置,该装置通过获取操作***中记录当前正在运行的进程间指向关系的数据结构,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,并将前方进程和后方进程的指向关系修改为后方进程直接指向前方进程,可以在操作***中用于记录进程间指向关系的数据结构中隐藏杀毒软件的进程,使得恶意程序无法通过编辑该数据结构得到杀毒软件的进程信息,进而无法关闭杀毒软件的进程,保证了杀毒软件能够正常的对恶意程序进行查杀,并通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀,提高了安全性。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的内核级恶意软件查杀的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
本发明实施例还提供了A1.一种内核级恶意软件查杀的方法,包括:
获取操作***中记录当前正在运行的进程间指向关系的数据结构;
在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,其中,所述前方进程为所述杀毒软件进程所指向的进程,所述后方进程为指向所述杀毒软件进程的进程;
将所述前方进程和所述后方进程的指向关系修改为所述后方进程直接指向所述前方进程;
通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
A2.根据A1所述的方法,其中,所述获取操作***中记录当前正在运行的进程间指向关系的数据结构,包括:
接收用户对内核级的恶意软件的查杀请求;
通过预先启动的保护工具执行获取操作***中记录当前正在运行的进程间指向关系的数据结构的操作。
A3.根据A1所述的方法,其中,所述获取操作***中记录当前正在运行的进程间指向关系的数据结构,包括:
在内存中读取用于记录所述操作***当前正在运行的进程的进程信息的双向链表;
在所述双向链表中读取用于记录进程间指向关系的数据结构。
A4.根据A3所述的方法,其中,所述双向链表为PsAcvtiveProcessList链表。
A5.根据A1至A4任一项所述的方法,其中,所述数据结构为EPROCESS结构;
其中,所述EPROCESS结构中包括LIST_ENTRY结构,所述LIST_ENTRY结构中包括指针成员FLINK和BLINK,所述FLINK中记录的指针用于指向当前EPROCESS结构所属进程的前方进程,所述BLINK中记录的指针用于指向当前EPROCESS结构所属进程的后方进程。
A6.根据A5所述的方法,其中,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,包括:
查找与已加载的杀毒软件进程对应的EPROCESS结构;
读取所述EPROCESS结构中的指针成员FLINK和BLINK所记录的指针;
通过所述指针成员FLINK和BLINK所记录的指针定位所述杀毒软件的前方进程和后方进程。
A7.根据A3至A6任一项所述的方法,其中,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,包括:
在所述双向链表中摘除所述杀毒软件进程的自身信息。
A8.根据A7所述的方法,其中,所述在所述双向链表中摘除所述杀毒软件进程的自身信息,包括:
将所述前方进程对应的EPROCESS结构中的BLINK中记录的指针修改为指向所述后方进程;
将所述后方进程对应的EPROCESS结构中的FLINK中记录的指针修改为指向所述前方进程。
本发明实施例还提供了B9.一种内核级恶意软件查杀的装置,包括:
数据结构获取模块,配置为获取操作***中记录当前正在运行的进程间指向关系的数据结构;
进程定位模块,配置为在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,其中,所述前方进程为所述杀毒软件进程所指向的进程,所述后方进程为指向所述杀毒软件进程的进程;
指向关系修改模块,配置为将所述前方进程和所述后方进程的指向关系修改为所述后方进程直接指向所述前方进程;
查杀模块,配置为通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
B10.根据B9所述的装置,其中,所述数据结构获取模块配置为按照如下方式获取操作***中记录当前正在运行的进程间指向关系的数据结构:
接收用户对内核级的恶意软件的查杀请求;
通过预先启动的保护工具执行获取操作***中记录当前正在运行的进程间指向关系的数据结构的操作。
B11.根据B9所述的装置,其中,所述数据结构获取模块包括:
链表获取单元,配置为在内存中读取用于记录所述操作***当前正在运行的进程的进程信息的双向链表;
数据结构读取单元,配置为在所述双向链表中读取用于记录进程间指向关系的数据结构。
B12.根据B11所述的装置,其中,所述链表获取单元获取的双向链表为PsAcvtiveProcessList链表。
B13.根据B9至12任一项所述的装置,其中,所述数据结构为EPROCESS结构;
其中,所述EPROCESS结构中包括LIST_ENTRY结构,所述LIST_ENTRY结构中包括指针成员FLINK和BLINK,所述FLINK中记录的指针用于指向当前EPROCESS结构所属进程的前方进程,所述BLINK中记录的指针用于指向当前EPROCESS结构所属进程的后方进程。
B14.根据B13所述的装置,其中,所述进程定位模块包括:
数据结构查找单元,配置为查找与已加载的杀毒软件进程对应的EPROCESS结构;
指针读取单元,配置为读取所述EPROCESS结构中的指针成员FLINK和BLINK所记录的指针;
进程定位单元,配置为通过所述指针成员FLINK和BLINK所记录的指针定位所述杀毒软件的前方进程和后方进程。
B15.根据B11至B14任一项所述的装置,其中,所述指向关系修改模块配置为在所述双向链表中摘除所述杀毒软件进程的自身信息。
B16.根据B15所述的装置,其中,所述指向关系修改模块配置为按照如下方式在所述双向链表中摘除所述杀毒软件进程的自身信息:
将所述前方进程对应的EPROCESS结构中的BLINK中记录的指针修改为指向所述后方进程;
将所述后方进程对应的EPROCESS结构中的FLINK中记录的指针修改为指向所述前方进程。
Claims (10)
1.一种内核级恶意软件查杀的方法,包括:
获取操作***中记录当前正在运行的进程间指向关系的数据结构;
在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,其中,所述前方进程为所述杀毒软件进程所指向的进程,所述后方进程为指向所述杀毒软件进程的进程;
将所述前方进程和所述后方进程的指向关系修改为所述后方进程直接指向所述前方进程;
通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
2.根据权利要求1所述的方法,其中,所述获取操作***中记录当前正在运行的进程间指向关系的数据结构,包括:
接收用户对内核级的恶意软件的查杀请求;
通过预先启动的保护工具执行获取操作***中记录当前正在运行的进程间指向关系的数据结构的操作。
3.根据权利要求1所述的方法,其中,所述获取操作***中记录当前正在运行的进程间指向关系的数据结构,包括:
在内存中读取用于记录所述操作***当前正在运行的进程的进程信息的双向链表;
在所述双向链表中读取用于记录进程间指向关系的数据结构。
4.根据权利要求3所述的方法,其中,所述双向链表为PsAcvtiveProcessList链表。
5.根据权利要求1至4任一项所述的方法,其中,所述数据结构为EPROCESS结构;
其中,所述EPROCESS结构中包括LIST_ENTRY结构,所述LIST_ENTRY结构中包括指针成员FLINK和BLINK,所述FLINK中记录的指针用于指向当前EPROCESS结构所属进程的前方进程,所述BLINK中记录的指针用于指向当前EPROCESS结构所属进程的后方进程。
6.根据权利要求5所述的方法,其中,在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,包括:
查找与已加载的杀毒软件进程对应的EPROCESS结构;
读取所述EPROCESS结构中的指针成员FLINK和BLINK所记录的指针;
通过所述指针成员FLINK和BLINK所记录的指针定位所述杀毒软件的前方进程和后方进程。
7.一种内核级恶意软件查杀的装置,包括:
数据结构获取模块,配置为获取操作***中记录当前正在运行的进程间指向关系的数据结构;
进程定位模块,配置为在所述数据结构中定位已加载的杀毒软件进程的前方进程和后方进程,其中,所述前方进程为所述杀毒软件进程所指向的进程,所述后方进程为指向所述杀毒软件进程的进程;
指向关系修改模块,配置为将所述前方进程和所述后方进程的指向关系修改为所述后方进程直接指向所述前方进程;
查杀模块,配置为通过已隐藏的杀毒软件对所述操作***进行恶意软件的查杀。
8.根据权利要求7所述的装置,其中,所述数据结构获取模块配置为按照如下方式获取操作***中记录当前正在运行的进程间指向关系的数据结构:
接收用户对内核级的恶意软件的查杀请求;
通过预先启动的保护工具执行获取操作***中记录当前正在运行的进程间指向关系的数据结构的操作。
9.根据权利要求7所述的装置,其中,所述数据结构获取模块包括:
链表获取单元,配置为在内存中读取用于记录所述操作***当前正在运行的进程的进程信息的双向链表;
数据结构读取单元,配置为在所述双向链表中读取用于记录进程间指向关系的数据结构。
10.根据权利要求9所述的装置,其中,所述链表获取单元获取的双向链表为PsAcvtiveProcessList链表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310652289.0A CN103679027A (zh) | 2013-12-05 | 2013-12-05 | 内核级恶意软件查杀的方法和装置 |
PCT/CN2014/092133 WO2015081791A1 (zh) | 2013-12-05 | 2014-11-25 | 内核级恶意软件查杀的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310652289.0A CN103679027A (zh) | 2013-12-05 | 2013-12-05 | 内核级恶意软件查杀的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103679027A true CN103679027A (zh) | 2014-03-26 |
Family
ID=50316537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310652289.0A Pending CN103679027A (zh) | 2013-12-05 | 2013-12-05 | 内核级恶意软件查杀的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103679027A (zh) |
WO (1) | WO2015081791A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156653A (zh) * | 2014-08-07 | 2014-11-19 | 深圳鼎瑄通讯科技有限公司 | 一种移动终端的应用保护方法及装置 |
WO2015081791A1 (zh) * | 2013-12-05 | 2015-06-11 | 北京奇虎科技有限公司 | 内核级恶意软件查杀的方法和装置 |
CN106815523A (zh) * | 2015-11-27 | 2017-06-09 | 北京金山安全软件有限公司 | 一种恶意软件防御方法及装置 |
CN109784059A (zh) * | 2019-01-11 | 2019-05-21 | 北京中睿天下信息技术有限公司 | 一种木马文件溯源方法、***及设备 |
CN109829270A (zh) * | 2018-12-27 | 2019-05-31 | 北京奇安信科技有限公司 | 应用程序防护方法及装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112580030B (zh) * | 2019-09-27 | 2023-08-01 | 奇安信科技集团股份有限公司 | 网络***及半隔离网终端病毒查杀方法和装置 |
US12020009B2 (en) * | 2021-07-29 | 2024-06-25 | Kyndryl, Inc. | Software application deployment |
CN113918933A (zh) * | 2021-09-26 | 2022-01-11 | 北京鲸鲮信息***技术有限公司 | 前端进程查杀方法、装置、设备和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
US20130247180A1 (en) * | 2007-08-15 | 2013-09-19 | Tracy E. Camp | System, method, and computer program product for comparing an object with object enumeration results to identify an anomaly that at least potentially indicates unwanted activity |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100504904C (zh) * | 2007-12-25 | 2009-06-24 | 北京大学 | 一种Windows隐蔽性恶意软件检测方法 |
CN101477600B (zh) * | 2009-01-20 | 2010-06-09 | 中国人民解放军保密委员会技术安全研究所 | 一种用于软件自动防护***的方法及安全卡 |
CN103679027A (zh) * | 2013-12-05 | 2014-03-26 | 北京奇虎科技有限公司 | 内核级恶意软件查杀的方法和装置 |
-
2013
- 2013-12-05 CN CN201310652289.0A patent/CN103679027A/zh active Pending
-
2014
- 2014-11-25 WO PCT/CN2014/092133 patent/WO2015081791A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206692A (zh) * | 2006-12-20 | 2008-06-25 | 联想(北京)有限公司 | 检测进程的方法及设备 |
US20130247180A1 (en) * | 2007-08-15 | 2013-09-19 | Tracy E. Camp | System, method, and computer program product for comparing an object with object enumeration results to identify an anomaly that at least potentially indicates unwanted activity |
Non-Patent Citations (1)
Title |
---|
刘正宏: "Windows RootKit进程隐藏与检测技术的研究", 《中国现代教育装备》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015081791A1 (zh) * | 2013-12-05 | 2015-06-11 | 北京奇虎科技有限公司 | 内核级恶意软件查杀的方法和装置 |
CN104156653A (zh) * | 2014-08-07 | 2014-11-19 | 深圳鼎瑄通讯科技有限公司 | 一种移动终端的应用保护方法及装置 |
CN106815523A (zh) * | 2015-11-27 | 2017-06-09 | 北京金山安全软件有限公司 | 一种恶意软件防御方法及装置 |
CN106815523B (zh) * | 2015-11-27 | 2019-10-15 | 珠海豹趣科技有限公司 | 一种恶意软件防御方法及装置 |
CN109829270A (zh) * | 2018-12-27 | 2019-05-31 | 北京奇安信科技有限公司 | 应用程序防护方法及装置 |
CN109829270B (zh) * | 2018-12-27 | 2022-04-15 | 奇安信科技集团股份有限公司 | 应用程序防护方法及装置 |
CN109784059A (zh) * | 2019-01-11 | 2019-05-21 | 北京中睿天下信息技术有限公司 | 一种木马文件溯源方法、***及设备 |
CN109784059B (zh) * | 2019-01-11 | 2020-11-17 | 北京中睿天下信息技术有限公司 | 一种木马文件溯源方法、***及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2015081791A1 (zh) | 2015-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103679027A (zh) | 内核级恶意软件查杀的方法和装置 | |
US11068591B2 (en) | Cybersecurity systems and techniques | |
Ntantogian et al. | Evaluating the privacy of Android mobile applications under forensic analysis | |
CN103019778B (zh) | 开机启动项的清理方法和装置 | |
US9230111B1 (en) | Systems and methods for protecting document files from macro threats | |
CN103281325A (zh) | 基于云安全的文件处理方法及装置 | |
US10216934B2 (en) | Inferential exploit attempt detection | |
CN103034513B (zh) | 开机过程的处理方法和*** | |
CN103679031A (zh) | 一种文件病毒免疫的方法和装置 | |
CN103473501B (zh) | 一种基于云安全的恶意软件追踪方法 | |
CN103001947A (zh) | 一种程序处理方法和*** | |
CN104025107A (zh) | 模糊列入白名单反恶意软件***及方法 | |
CN104008340A (zh) | 病毒查杀方法及装置 | |
CN104517054A (zh) | 一种检测恶意apk的方法、装置、客户端和服务器 | |
US8321940B1 (en) | Systems and methods for detecting data-stealing malware | |
CN103559447B (zh) | 一种基于病毒样本特征的检测方法、检测装置及检测*** | |
CN102999720A (zh) | 程序鉴别方法和*** | |
US11522885B1 (en) | System and method for information gain for malware detection | |
US8448243B1 (en) | Systems and methods for detecting unknown malware in an executable file | |
CN103279707A (zh) | 一种用于主动防御恶意程序的方法、设备及*** | |
CN102982281A (zh) | 程序状况检测方法和*** | |
US9740865B2 (en) | System and method for configuring antivirus scans | |
US20210165904A1 (en) | Data loss prevention | |
CN103713945A (zh) | 游戏的识别方法和装置 | |
CN102999721A (zh) | 一种程序处理方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |