病毒的查杀方法及装置制造方法

文档序号:7798077阅读:173来源:国知局
病毒的查杀方法及装置制造方法
【专利摘要】本发明提供了一种病毒的查杀方法及装置,其中,病毒的查杀方法包括:获取当前内核所有工作线程的线程对象;对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址;根据对应工作线程的起始地址获得对应工作线程所在的模块路径;以及根据模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除病毒。本发明实施例的病毒的查杀方法及装置,通过获取线程对象,对获取到的各个线程对象的内核栈进行回溯获得对应工作线程的起始地址,根据起始地址获得对应工作线程所在的模块路径;并根据模块路径定位到病毒所启动的工作线程,从而可以检测出病毒线程,然后稳定地关闭病毒线程,大大提升了系统的安全性。
【专利说明】病毒的查杀方法及装置
【技术领域】
[0001]本发明涉及网络安全【技术领域】,特别涉及一种病毒的查杀方法及装置。
【背景技术】
[0002]随着信息技术的不断发展,计算机已经成为人们生活、工作和娱乐的一个重要组成部分,计算机网络也成为人际交往、沟通的一种主要方式。在计算机技术给人们带来方便的同时,计算机的安全问题也随之出现,其中一个重要的方面就是病毒的出现。
[0003]在2010年至2013年间,一种名为鬼影(TDSS)的rootkit病毒在全球大肆流行。该病毒通过在系统内核中启动一条线程,不断执行自身逻辑。普通安全软件很难检测发现,即使检测到了,将被病毒破坏的系统内核修复好后,正在运行的病毒线程又会重复感染系统内核。
[0004]然而,相关技术无法判断一条内核线程的是否是安全的,更未提供任何方式可以关闭或挂起病毒线程。因此,如何判断一条内核线程是病毒线程,且稳定地将其关闭或挂起,成为查杀该病毒所必须要解决的技术问题。

【发明内容】

[0005]本发明旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本发明的一个目的在于提出一种可以检测内核线程是否为病毒线程的病毒的查杀方法、装置及移动终端。
[0006]根据本发明实施例的病毒的查杀方法,包括:获取当前内核所有工作线程的线程对象;对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址;根据对应工作线程的起始地址获得对应工作线程所在的模块路径;以及根据模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除病毒。
[0007]根据本发明实施例的病毒的查杀方法,通过获取线程对象,对获取到的各个线程对象的内核栈进行回溯获得对应工作线程的起始地址,根据起始地址获得对应工作线程所在的模块路径;并根据模块路径定位到病毒所启动的工作线程,从而可以检测出病毒线程,然后稳定地关闭病毒线程,大大提升了系统的安全性。
[0008]根据本发明实施例的病毒的查杀装置,包括:对象获取模块,用于获取当前内核所有工作线程的线程对象;回溯模块,用于对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址;路径获得模块,用于根据对应工作线程的起始地址获得对应工作线程所在的模块路径;以及查杀模块,用于根据路径获得模块获得的模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除病毒。
[0009]根据本发明实施例的病毒的查杀装置,通过对象获取模块获取线程对象,通过回溯模块对获取到的各个线程对象的内核栈进行回溯获得对应工作线程的起始地址,通过路径获得模块根据起始地址获得对应工作线程所在的模块路径;并利用查杀模块根据模块路径定位到病毒所启动的工作线程,从而可以检测出病毒线程,然后稳定地关闭病毒线程,大大提升了系统的安全性。
[0010]根据本发明实施例的移动终端包括壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为移动终端的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,以用于执行以下步骤:获取当前内核所有工作线程的线程对象;对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址;根据对应工作线程的起始地址获得对应工作线程所在的模块路径;以及根据模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除病毒。
[0011]根据本发明实施例的移动终端,通过获取线程对象,对获取到的各个线程对象的内核栈进行回溯获得对应工作线程的起始地址,根据起始地址获得对应工作线程所在的模块路径;并根据模块路径定位到病毒所启动的工作线程,从而可以检测出病毒线程,然后稳定地关闭病毒线程,大大提升了系统的安全性。
【专利附图】

【附图说明】
[0012]图1是根据本发明一个实施例的病毒的查杀方法的流程图。
[0013]图2是根据本发明另一个实施例的病毒的查杀方法的流程图。
[0014]图3是根据本发明一个实施例的感染病毒后的内核信息示意图。
[0015]图4是根据本发明一个实施例的查杀病毒过程中的提示信息示意图。
[0016]图5是根据本发明一个实施例的查杀病毒后的内核信息示意图。
[0017]图6是根据本发明一个实施例的病毒的查杀装置的结构示意图。
【具体实施方式】
[0018]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0019]下面参考附图描述本发明实施例的病毒的查杀方法及装置。
[0020]图1为根据本发明一个实施例的病毒的查杀方法的流程图。如图1所示,该病毒的查杀方法包括以下步骤:
[0021]S101,获取当前内核所有工作线程的线程对象。
[0022]其中,当前内核的工作线程即内核工作线程,又称工作队列线程,是Windows操作系统上最底层的线程实现,常用于执行高优先级操作。
[0023]S102,对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址。
[0024]其中,对内核栈进行回溯是指:通过栈结构反向层层推导,最终获取保存在栈中某
一层中的变量值。
[0025]在该实施例中,对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址可以包括:获得各个线程对象的栈基址,根据该栈基址通过内存特征回溯对应的内核栈,获得对应工作线程的起始地址。
[0026]S103,根据对应工作线程的起始地址获得对应工作线程所在的模块路径。[0027]其中,工作线程所在的模块路径也就是内核驱动模块的路径。该步骤S103可以包括:获得内核模块列表及其对应的内存范围;将对应工作线程的起始地址与内存范围进行匹配,确定对应工作线程所在的模块路径。
[0028]S104,根据模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除病毒。
[0029]通过步骤S103获得各个工作线程所在的模块路径后,可以根据该模块路径找到病毒所启动的工作线程即病毒线程,由此可见,通过上述过程可以检测出一个线程是否为病毒线程,在确定病毒线程后,挂起该病毒线程,灭活病毒,继续后续操作,直到完全清除病毒。
[0030]其中,灭活病毒是指使病毒的执行逻辑终止运行。
[0031]上述病毒的查杀方法实施例,通过获取线程对象,对获取到的各个线程对象的内核栈进行回溯获得对应工作线程的起始地址,根据起始地址获得对应工作线程所在的模块路径;并根据模块路径定位到病毒所启动的工作线程,从而可以检测出病毒线程,然后稳定地关闭病毒线程,大大提升了系统的安全性。
[0032]为了更详细地描述病毒的查杀过程,下面以图2为例进行详细说明,如图2所示,该病毒的查杀方法包括: [0033]S201,扫描所有的工作线程创建函数所在的内存。
[0034]其中,工作线程创建函数可以为ExQueueWorkItem函数,它会将一个工作项(包含线程起始地址等信息)插入到队列中,这个队列可以为ExWorkerQueue。
[0035]S202,根据内存定位出工作线程所在队列组成的数组的首地址。
[0036]由于所创建的工作线程均处于内存中,因此,通过扫描内存,可以获得工作线程所在队列组成的数组的首地址。在该实施例中,可以为定位由系统定义的四种工作线程所在队列组成的数组。
[0037]具体地,可以通过遍历该ExQueueWorkItem函数定位出队列的地址。
[0038]S203,根据首地址遍历各个队列,获得所有工作线程的线程对象。
[0039]S204,获得各个线程对象的栈基址。
[0040]S205,根据栈基址通过内存特征回溯对应的内核栈,获得对应工作线程的起始地址。
[0041]该步骤S205可以为从栈基址开始,通过指定内存特征进行栈回溯来获得对应内核线程的起始地址。
[0042]S206,获得内核模块列表及其对应的内存范围。
[0043]该步骤S206可以为使用系统信息查询函数(ZwQuerySystemInformation)来获得内核模块列表及对应的内存范围。
[0044]假设,在该实施例中的内核模块列表包含如表1所不的信息:
[0045]表1内核模块列表中的信息
[0046]
【权利要求】
1.一种病毒的查杀方法,其特征在于,包括: 获取当前内核所有工作线程的线程对象; 对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址; 根据所述对应工作线程的起始地址获得对应工作线程所在的模块路径;以及根据所述模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除所述病毒。
2.根据权利要求1所述的方法,其特征在于,所述获取当前内核所有工作线程的线程对象包括: 扫描所有的工作线程创建函数所在的内存; 根据所述内存定位出所述工作线程所在队列组成的数组的首地址;以及 根据所述首地址遍历各个队列,获得所有工作线程的线程对象。
3.根据权利要求1所述的方法,其特征在于,所述对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址包括: 获得各个线程对象的栈基址,根据所述栈基址通过内存特征回溯对应的内核栈,获得对应工作线程的起始地址。
4.根据权利要求1所述的方法,其特征在于,所述根据所述对应工作线程的起始地址获得对应工作线程所在的模块路径包括: 获得内核模块列表及其对应的内存范围; 将对应工作线程的起始地址与所述内存范围进行匹配,确定对应工作线程所在的模块路径。
5.根据权利要求4所述的方法,其特征在于,所述获得内核模块列表及其对应的内存范围包括: 通过系统信息查询函数获得内核模块列表及其对应的内存范围。
6.根据权利要求1所述的方法,其特征在于,所述根据所述模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除所述病毒,包括: 根据所述模块路径判断对应的工作线程是否为病毒所启动的工作线程,若是,则挂起所述病毒所启动的工作线程,灭活并清除所述病毒。
7.根据权利要求6所述的方法,其特征在于,所述挂起所述病毒所启动的工作线程包括: 调用线程挂起函数挂起所述病毒所启动的工作线程。
8.一种病毒的查杀装置,其特征在于,包括: 对象获取模块,用于获取当前内核所有工作线程的线程对象; 回溯模块,用于对各个线程对象的内核栈进行回溯以获得对应工作线程的起始地址;路径获得模块,用于根据所述对应工作线程的起始地址获得对应工作线程所在的模块路径;以及 查杀模块,用于根据所述路径获得模块获得的模块路径定位到病毒所启动的工作线程,挂起病毒所启动的工作线程,并清除所述病毒。
9.根据权利要求8所述的装置,其特征在于,所述对象获取模块,包括: 扫描单元,用于扫描所有的工作线程创建函数所在的内存;定位单元,用于根据所述扫描单元扫描到的所述内存定位出所述工作线程所在队列组成的数组的首地址;以及 遍历单元,用于根据所述定位单元定位出的所述首地址遍历各个队列,获得所有工作线程的线程对象。
10.根据权利要求8所述的装置,其特征在于,所述回溯模块,具体用于: 获得各个线程对象的栈基址,根据所述栈基址通过内存特征回溯对应的内核栈,获得对应工作线程的起始地址。
11.根据权利要求8所述的装置,其特征在于,所述路径获得模块,包括: 获得单元,用于获得内核模块列表及其对应的内存范围; 匹配确定单元,用于将所述回溯模块获得的对应工作线程的起始地址与所述获得单元获得的内存范围进行匹配,确定对应工作线程所在的模块路径。
12.根据权利要求11所述的装置,其特征在于,所述获得单元,具体用于: 通过系统信息查询函数获得内核模块列表及其对应的内存范围。
13.根据权利要求8所述的装置,其特征在于,所述查杀模块,具体用于: 根据所述模块路径判断对应的工作线程是否为病毒所启动的工作线程,若是,则挂起所述病毒所启动的工作线程,灭活并清除所述病毒。
14.根据权利要求13所述的装置,其特征在于,所述查杀模块,具体用于: 调用线程挂起函数挂起所述病毒所启动的工作线程。
【文档编号】H04L29/06GK103888447SQ201410075200
【公开日】2014年6月25日 申请日期:2014年3月3日 优先权日:2014年3月3日
【发明者】陈翼展 申请人:珠海市君天电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1