本发明专利技术实施例公开了一种恶意软件防御方法及装置。一种恶意软件防御方法,应用于终端,可以包括以下步骤:根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址;根据所述回调列表的内存地址,识别所述回调列表;针对所述回调列表中包含的每个节点,判断该节点保存的进程对象类型回调函数的内存地址是否在恶意软件在内核中对应的内存地址区间集合中;如果是,则在所述回调列表中删除该节点。应用本发明专利技术实施例所提供的技术方案,可以使得恶意软件的进程保护失效,终端或者终端中的杀毒类应用程序可以正常结束恶意软件的进程,从而保护终端系统不受恶意软件的危害,具有较好的防御效果。
【技术实现步骤摘要】
一种恶意软件防御方法及装置
本专利技术涉及计算机
,特别涉及一种恶意软件防御方法及装置。
技术介绍
恶意软件,是指在计算机系统上执行恶意任务的病毒、蠕虫和特洛伊木马的程序,通过破坏软件进程来实施控制。目前,现有技术中对恶意软件的防御主要是通过结束恶意软件的进程来实现的。但是,在计算机的Windows系统中,恶意软件可以利用系统提供的用于注册进程对象类型回调的ObRegisterCallbacks函数进行进程保护。因为要结束恶意软件的进程需要先经过恶意软件注册的回调函数,恶意软件在回调函数中判断要结束的进程是否是其本身的进程,如果是,则恶意软件会返回拒绝消息,这样可以防止其进程不被正常结束,也不能被安全软件结束。恶意软件的进程不能被结束,恶意软件仍可继续危害系统。所以,应用现有技术无法有效防御恶意软件,恶意软件仍可继续危害系统,给用户带来损失。
技术实现思路
本专利技术实施例的目的在于提供一种恶意软件防御方法及装置,以有效防御恶意软件,避免恶意软件危害系统。技术方案如下:一种恶意软件防御方法,应用于终端,包括:根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址;根据所述回调列表的内存地址,识别所述回调列表;针对所述回调列表中包含的每个节点,判断该节点保存的进程对象类型回调函数的内存地址是否在恶意软件在内核中对应的内存地址区间集合中;如果是,则在所述回调列表中删除该节点。在本专利技术的一种具体实施方式中,所述根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址,包括:根据预先获得的回调列表在进程对象类型的数据结构中的偏移量及当前时刻获得的所述进程对象类型的内存地址,确定所述回调列表的内存地址。在本专利技术的一种具体实施方式中,预先通过以下步骤获得回调列表在进程对象类型的数据结构中的偏移量:获得第一时刻进程对象类型的内存地址;从所述第一时刻所述进程对象类型的内存地址开始反汇编读取内存数据;在读取到的内存数据中,根据回调列表在所述进程对象类型的数据结构中的特征,确定所述第一时刻所述回调列表的内存地址;将所述第一时刻所述回调列表的内存地址减去所述第一时刻所述进程对象类型的内存地址,获得所述回调列表在所述进程对象类型的数据结构中的偏移量。在本专利技术的一种具体实施方式中,针对恶意软件,通过以下步骤获得该恶意软件在内核中对应的内存地址区间:获得该恶意软件的驱动程序的标识信息;根据该恶意软件的驱动程序的标识信息,获取该恶意软件的驱动程序在内核中的内存起始地址和结束地址;将获取到的该恶意软件的驱动程序在内核中的内存起始地址和结束地址构成的地址区间确定为该恶意软件在内核中对应的内存地址区间。在本专利技术的一种具体实施方式中,在所述在所述回调列表中删除该节点之后,所述方法还包括:在所述内存地址区间集合中删除该节点保存的进程对象类型回调函数的内存地址所在的内存地址区间。一种恶意软件防御装置,应用于终端,包括:内存地址确定模块,用于根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址;回调列表识别模块,用于根据所述回调列表的内存地址,识别所述回调列表;内存地址判断模块,用于针对所述回调列表中包含的每个节点,判断该节点保存的进程对象类型回调函数的内存地址是否在恶意软件在内核中对应的内存地址区间集合中,如果是,则触发节点删除模块;所述节点删除模块,用于在所述回调列表中删除该节点。在本专利技术的一种具体实施方式中,所述回调列表内存地址确定模块,具体用于:根据预先获得的回调列表在进程对象类型的数据结构中的偏移量及当前时刻获得的所述进程对象类型的内存地址,确定所述回调列表的内存地址。在本专利技术的一种具体实施方式中,所述装置还包括:偏移量获得模块,用于预先通过以下步骤获得回调列表在进程对象类型的数据结构中的偏移量:获得第一时刻进程对象类型的内存地址;从所述第一时刻所述进程对象类型的内存地址开始反汇编读取内存数据;在读取到的内存数据中,根据回调列表在所述进程对象类型的数据结构中的特征,确定所述第一时刻所述回调列表的内存地址;将所述第一时刻所述回调列表的内存地址减去所述第一时刻所述进程对象类型的内存地址,获得所述回调列表在所述进程对象类型的数据结构中的偏移量。在本专利技术的一种具体实施方式中,所述装置还包括:内存地址区间获得模块,用于针对恶意软件,通过以下步骤获得该恶意软件在内核中对应的内存地址区间:获得该恶意软件的驱动程序的标识信息;根据该恶意软件的驱动程序的标识信息,获取该恶意软件的驱动程序在内核中的内存起始地址和结束地址;将获取到的该恶意软件的驱动程序在内核中的内存起始地址和结束地址构成的地址区间确定为该恶意软件在内核中对应的内存地址区间。在本专利技术的一种具体实施方式中,所述装置还包括:内存地址区间删除模块,用于在所述节点删除模块在所述回调列表中删除该节点之后,在所述内存地址区间集合中删除该节点保存的进程对象类型回调函数的内存地址所在的内存地址区间。应用本专利技术实施例所提供的技术方案,如果回调列表中的节点保存的进程对象类型回调函数的内存地址在恶意软件在内核中对应的内存地址区间集合中,则删除回调列表中相应的节点,以使得恶意软件的进程保护失效,终端或者终端中的杀毒类应用程序可以正常结束恶意软件的进程,从而保护终端系统不受恶意软件的危害,具有较好的防御效果。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中一种恶意软件防御方法的实施流程图;图2为本专利技术实施例中一种恶意软件防御装置的结构示意图。具体实施方式为了使本领域技术人员更好地理解本专利技术实施例中的技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例所提供的一种恶意软件防御方法应用于终端,如具有Windows系统的台式机、笔记本电脑等终端。终端在进行恶意软件的防御时,可以针对回调列表中包含的每个节点,判断该节点保存的进程对象类型回调函数的内存地址是否在恶意软件在内核中对应的内存地址区间集合中,如果是,则将该节点在回调列表中删除。具体的,可以是通过终端中的某一个应用程序进行恶意软件的防御,例如,通过终端中安装的杀毒类应用程序对恶意软件进行防御。在实际应用中,终端可以在接收到查杀恶意软件的触发请求后,应用本专利技术实施例所提供的技术方案进行恶意软件的防御,还可以按照预设的周期,定期应用本专利技术实施例所提供的技术方案进行恶意软件的防御。参见图1所示,为本专利技术实施例所提供的一种恶意软件防御方法的实施流程图,该方法可以包括以下步骤:S110:根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址。所谓进程对象类型,即PsProcessType,是一种内核对象。为方便理解,首先对内核对象做简要说明。内核对本文档来自技高网...
【技术保护点】
一种恶意软件防御方法,应用于终端,其特征在于,包括:根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址;根据所述回调列表的内存地址,识别所述回调列表;针对所述回调列表中包含的每个节点,判断该节点保存的进程对象类型回调函数的内存地址是否在恶意软件在内核中对应的内存地址区间集合中;如果是,则在所述回调列表中删除该节点。
【技术特征摘要】
1.一种恶意软件防御方法,应用于终端,其特征在于,包括:根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址;根据所述回调列表的内存地址,识别所述回调列表;针对所述回调列表中包含的每个节点,判断该节点保存的进程对象类型回调函数的内存地址是否在恶意软件在内核中对应的内存地址区间集合中;如果是,则在所述回调列表中删除该节点。2.根据权利要求1所述的方法,其特征在于,所述根据当前时刻获得的进程对象类型的内存地址,确定回调列表的内存地址,包括:根据预先获得的回调列表在进程对象类型的数据结构中的偏移量及当前时刻获得的所述进程对象类型的内存地址,确定所述回调列表的内存地址。3.根据权利要求2所述的方法,其特征在于,预先通过以下步骤获得回调列表在进程对象类型的数据结构中的偏移量:获得第一时刻进程对象类型的内存地址;从所述第一时刻所述进程对象类型的内存地址开始反汇编读取内存数据;在读取到的内存数据中,根据回调列表在所述进程对象类型的数据结构中的特征,确定所述第一时刻所述回调列表的内存地址;将所述第一时刻所述回调列表的内存地址减去所述第一时刻所述进程对象类型的内存地址,获得所述回调列表在所述进程对象类型的数据结构中的偏移量。4.根据权利要求1所述的方法,其特征在于,针对恶意软件,通过以下步骤获得该恶意软件在内核中对应的内存地址区间:获得该恶意软件的驱动程序的标识信息;根据该恶意软件的驱动程序的标识信息,获取该恶意软件的驱动程序在内核中的内存起始地址和结束地址;将获取到的该恶意软件的驱动程序在内核中的内存起始地址和结束地址构成的地址区间确定为该恶意软件在内核中对应的内存地址区间。5.根据权利要求1所述的方法,其特征在于,在所述在所述回调列表中删除该节点之后,所述方法还包括:在所述内存地址区间集合中删除该节点保存的进程对象类型回调函数的内存地址所在的内存地址区间。6.一种恶意软件防御装置,应用于终端,其特征在于,包括:内存地址确定模块,用于根据当前时刻获得...
【专利技术属性】
技术研发人员:杨峰,潘建军,王云峰,
申请(专利权)人:北京金山安全软件有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。