一种防止鼠标被恶意捕获的方法、装置及电子设备与流程

文档序号:11865206阅读:286来源:国知局
一种防止鼠标被恶意捕获的方法、装置及电子设备与流程

本发明涉及计算机安全技术领域,尤其涉及一种防止鼠标被恶意捕获的方法、装置及电子设备。



背景技术:

Window系统中,提供了SetCapture函数,该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。另外,系统还提供了ReleaseCapture函数来释放鼠标的捕获,如果恶意软件使用了SetCapture函数来捕获鼠标,却没有使用ReleaseCapture函数来释放鼠标,这样其他窗口获取鼠标消息将会失败。

目前,为保护鼠标消息不被恶意捕获,通常使用的方法是挂钩应用层的SetCapture函数,这样,钩子函数就会对调用SetCapture函数的事件进行监视,从而及时获知恶意程序进程想要捕获鼠标,以及时阻止该调用事件。但是,发明人发现Windows系统内核层还提供了NtUserSetCapture函数,如果恶意程序调用NtUserSetCapture函数来捕获鼠标消息,由于此方法比较隐蔽,目前的安全防御软件还没有对这种恶意调用采取防护措施,这样恶意软件就能通过此方式捕获鼠标消息,破坏系统的正常鼠标消息传递。



技术实现要素:

有鉴于此,本发明实施例提供一种防止鼠标被恶意捕获的方法、装置及电子设备,能有效的阻止恶意程序对鼠标消息的捕获,达到保证系统正常鼠标消息传递的目的。

第一方面,本发明实施例提供一种防止鼠标被恶意捕获的方法,包括:

监听进程对操作系统中捕获鼠标消息函数进行调用的事件;

根据监听到的事件,获取所述进程的进程路径;

根据所述进程路径判断所述进程是否为恶意程序进程;

若所述进程是恶意程序进程,则拒绝所述进程捕获鼠标消息。

结合第一方面,在第一方面的第一种实施方式中,所述系统为Windows操作系统;所述捕获鼠标消息函数为操作系统内核层的NtUserSetCapture函数;

在监听进程对操作系统中捕获鼠标消息函数进行调用的事件之前,所述方法还包括:预先设置挂钩操作系统中捕获鼠标消息函数的钩子函数;

所述监听进程对操作系统中捕获鼠标消息函数进行调用的事件,包括:通过所述钩子函数监听进程对操作系统中捕获鼠标消息函数进行调用的事件。

结合第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述拒绝所述进程捕获鼠标消息,包括:

通过所述钩子函数向所述进程返回拒绝消息;或者

所述钩子函数拒绝调用NtUserSetCapture函数,以拒绝捕获鼠标消息。

结合第一方面,在第一方面的第三种实施方式中,所述根据所述进程路径判断所述进程是否为恶意程序进程之后,还包括:

若所述进程不是恶意程序进程,则调用捕获鼠标消息函数,同意所述进程捕获鼠标消息。

结合第一方面,在第一方面的第四种实施方式中,所述根据所述进程路径判断所述进程是否为恶意程序进程,包括:

根据预先设置的特征值算法,获取所述进程路径对应文件的特征值;

判断预先设置的特征库中,是否记录有所述进程路径对应文件的特征值;

若预先设置的特征库中记录有所述进程路径对应文件的特征值,则确定所述进程为恶意程序进程;若预先设置的特征库中没有记录所述进程路径对应文件的特征值,则确定所述进程不是恶意程序进程;

其中,所述预先设置的特征库中记录有已知恶意程序进程路径对应文件的特征值。

结合第一方面的第四种实施方式,在第一方面的第五种实施方式中,所述判断预先设置的特征库中,是否记录有所述进程路径对应文件的特征值之前,还包括:

统计已知恶意程序进程路径;

根据预先设置的特征值算法,获取所述已知恶意程序进程路径对应文件的特征值;

将已知恶意程序进程路径对应文件的特征值存储在特征库中。

结合第一方面的第四种或第五种实施方式,在第一方面的第六种实现方式中,所述预先设置的特征值算法为:

求取进程路径的计算消息摘要算法值或哈希值作为进程路径对应文件的特征值,或者

从进程路径中获取文件版本号作为进程路径对应文件的特征值。

第二方面,本发明实施例提供一种防止鼠标被恶意捕获的装置,包括:

监听模块,用于监听进程对操作系统中捕获鼠标消息函数进行调用的事件;

获取模块,用于根据所述监听模块监听到的事件,获取所述进程的进程路径;

判断模块,用于根据所述获取模块获取到的所述进程路径,判断所述进程是否是恶意程序进程;

阻止模块,用于在所述判断模块判断出所述进程是恶意程序进程时,拒绝所述进程捕获鼠标消息。

结合第二方面,在第二方面的第一种实施方式中,所述操作系统为Windows操作系统时,所述监听模块中预先设置有挂钩操作系统中NtUserSetCapture函数的钩子函数,所述监听模块通过所述钩子函数监听进程对操作系统中捕获鼠标消息函数进行调用的事件。

结合第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述阻止模块通过所述钩子函数向所述进程返回拒绝消息或拒绝调用NtUserSetCapture函数,以拒绝捕获鼠标消息。

结合第二方面,在第二方面的第三种实施方式中,所述阻止模块,还用于在所述判断模块判断出所述进程不是恶意程序进程时,调用捕获鼠标消息函数,同意所述进程捕获鼠标消息。

结合第二方面,在第二方面的第四种实施方式中,所述判断模块包括:

特征值计算子模块,用于根据预先设置的特征值算法,获取所述获取模块获取到的进程路径对应文件的特征值;

匹配子模块,用于判断预先设置的特征库中,是否记录有所述特征值计算子模块获取到的进程路径对应文件的特征值,若预先设置的特征库中记录有所述进程路径对应文件的特征值,则确定所述进程为恶意程序进程;若预先设置的特征库中没有记录所述进程路径对应文件的特征值,则确定所述进程不是恶意程序进程;其中,所述预先设置的特征库中记录有已知恶意程序进程路径对应文件的特征值。

结合第二方面的第四种实施方式,在第二方面的第五种实施方式中,还包括:

特征库生成模块,用于预先统计已知恶意程序进程路径,并根据预先设置的特征值算法,获取所述已知恶意程序进程路径对应文件的特征值并存储在特征库中。

结合第二方面的第四种或第五种实施方式,在第二方面的第六种实施方式中,所述特征值计算子模块具体用于求取所述获取模块获取到的进程路径的计算消息摘要算法值或哈希值作为进程路径对应文件的特征值,或者从所述获取模块获取到的进程路径中获取文件版本号作为进程路径对应文件的特征值。

第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的防止系统被恶意关闭的方法。

本发明实施例提供的一种防止鼠标被恶意捕获的方法、装置及电子设备,通过监听进程对操作系统中捕获鼠标消息函数进行调用的事件,当监听到有进程调用捕获鼠标消息函数时,获取所述进程路径,并根据所述进程路径判断所述进程是否为恶意程序进程,若所述进程是恶意程序进程,则拒绝所述进程捕获鼠标消息。由此能够防止恶意程序采用隐蔽方式捕获鼠标消息,解决现有的恶意软件破坏系统的正常鼠标消息传递的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为本发明防止鼠标被恶意捕获的方法实施例一的流程图;

图2为本发明防止鼠标被恶意捕获的方法实施例二的流程图;

图3为本发明防止鼠标被恶意捕获的装置实施例一的结构示意图;

图4为本发明防止鼠标被恶意捕获的装置实施例三的结构示意图;

图5为本发明电子设备一个实施例的结构示意图。

具体实施方式

下面结合附图对本发明实施例一种防止鼠标被恶意捕获方法、装置及电子设备进行详细描述。

应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

图1为本发明防止鼠标被恶意捕获的方法实施例一的流程图,如图1所示,本实施例的方法可以包括:

步骤101、监听进程对操作系统中捕获鼠标消息函数进行调用的事件。

本实施例中,恶意程序需调用操作系统提供的捕获鼠标消息函数才能实现捕获鼠标消息。故可以通过对所述捕获鼠标消息函数进行监视,可及时截获恶意程序要捕获鼠标消息的消息。在截获到该消息后,可拒绝恶意程序进程捕获鼠标消息,从而可有效地阻止恶意程序对鼠标消息的捕获,达到保证系统正常鼠标消息传递的目的。

步骤102、根据监听到的事件,获取所述进程的进程路径。

本实施例中,例如根据进程的标识符PID,调用系统中的获取进程路径的函数,就能获取到进程路径。

步骤103、根据所述进程路径判断所述进程是否为恶意程序进程;是则执行步骤104,否则执行步骤105。

本实施例中,由于恶意程序进程路径比较固定,故可以根据当前进程的路径信息,判断进程是否为恶意程序进程。

本实施例中,作为一可选方式,可根据预先设置的特征值算法获取所述进程路径对应文件的特征值;然后判断预先设置的特征库中,是否记录有所述进程路径对应文件的特征值;若预先设置的特征库中记录有所述进程路径对应文件的特征值,则确定所述进程为恶意程序进程;若预先设置的特征库中没有记录所述进程路径对应文件的特征值,则确定所述进程不是恶意程序进程。其中,特征库是预先设置的,特征库的生成过程为:统计已知恶意进程路径;根据预先设置的特征值算法,获取所述已知恶意程序进程路径对应文件的特征值存储在特征库中。

优选地,预先设置的特征值算法为:求取进程路径的计算消息摘要算法(MD5)值或哈希(HASH)值作为进程路径对应文件的特征值,或者从进程路径中获取文件版本号作为进程路径对应文件的特征值。

步骤104、拒绝所述进程捕获鼠标消息;

本实施例中,如果当前进程为恶意程序进程,则拒绝所述进程捕获鼠标消息,达到保证系统正常鼠标消息传递的目的。

步骤105、调用捕获鼠标消息函数,同意所述进程捕获鼠标消息。

本实施例中,如果当前进程不是恶意程序进程,则调用捕获鼠标消息函数,同意所述进程捕获鼠标消息,保证系统正常鼠标消息的传递。

本实施例,通过对恶意程序调用操作系统中捕获鼠标消息函数的监控,能有效地阻止恶意程序对鼠标消息的捕获,达到保证系统正常鼠标消息传递的目的。

本实施例提供的防止鼠标被恶意捕获的方法,通过监听进程对操作系统中捕获鼠标消息函数进行调用的事件,当监听到有进程调用捕获鼠标消息函数时,获取所述进程路径,并根据所述进程路径判断所述进程是否为恶意程序进程,若所述进程是恶意程序进程,则拒绝所述进程捕获鼠标消息。由此能够防止恶意程序采用隐蔽方式捕获鼠标消息,解决现有的恶意软件破坏系统的正常鼠标消息传递的问题。

图2为本发明防止鼠标被恶意捕获的方法实施例二的流程图,本实施例用于Windows操作系统;所述捕获鼠标消息函数为操作系统内核层的NtUserSetCapture函数。本发明实施例适用于金山毒霸或金山卫士等安全防护类应用程序对操作系统的捕获鼠标消息的正常传递进行保护。如图2所示,本实施例的方法包括如下步骤:

步骤201、监听进程对操作系统中NtUserSetCapture函数进行调用的事件。

本实施例中,通过预先设置的钩子(Hook)函数监听进程对操作系统中NtUserSetCapture函数进行调用的事件。钩子函数实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子函数就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。

本实施例中,钩子函数在本步骤执行之前预先建立在安全防护类应用程序如金山毒霸的防御驱动中,该钩子函数挂钩操作系统中的NtUserSetCapture函数。安全防护类应用程序的防御驱动在Windows操作系统开机后即开始运行。

本实施例中,将NtUserSetCapture函数的原始入口地址修改为本实施例中的钩子函数的入口地址。恶意进程在调用NtUserSetCapture函数时,由于NtUserSetCapture函数的原始入口地址已被修改为本实施例的钩子函数的入口地址,则调用NtUserSetCapture函数时,会跳至本实施例的钩子函数的执行,由此实现对NtUserSetCapture函数的监视。为了实现对NtUserSetCapture函数的回调,在将NtUserSetCapture函数的原始入口地址修改为本实施例中的钩子函数的入口地址之前,需要对NtUserSetCapture函数的原始入口地址进行保存。

步骤202、钩子函数监听到进程调用NtUserSetCapture函数的事件时,获取所述进程的进程路径;

本实施例中,恶意进程对NtUserSetCapture函数的调用,是通过向Windows操作系统发出调用NtUserSetCapture函数的消息,该消息会直接被钩子函数截获。钩子函数截获到该消息,即视为监听到NtUserSetCapture函数被进程调用的事件,然后根据进程的标识符PID,调用系统中的获取进程路径的函数,如:GetModuleFileNameEx、GetProcessImageFileName函数等,就能获取到进程路径,该方法实现非常简单。

步骤203、根据所述进程路径判断所述进程是否为恶意程序进程;是则执行步骤204,否则执行步骤205;

本实施例中,步骤203的过程和上述方法实施例的步骤103类似,此处不再赘述。

步骤204、拒绝所述进程捕获鼠标消息;

本实施例中,通过所述钩子函数向所述进程返回拒绝消息;或者所述钩子函数拒绝调用NtUserSetCapture函数,以拒绝捕获鼠标消息。

步骤205、钩子函数调用NtUserSetCapture函数,同意所述进程捕获鼠标消息。

本实施例中,可以调用操作系统内核函数NtUserSetCapture,同意所述进程捕获鼠标消息。

本实施例提供的防止鼠标被恶意捕获的方法,能有效的阻止恶意程序对鼠标消息的捕获,达到保证系统正常鼠标消息传递的目的。

下面采用一个具体的实施例,对图1~图2中任一个所示方法实施例的技术方案进行详细说明。

在用户电脑环境中,存在一个恶意软件A。在金山毒霸的防御驱动中Hook了捕获鼠标消息的NtUserSetCapture函数,当恶意软件A的进程通知其驱动程序调用NtUserSetCapture函数捕获鼠标消息时,防御驱动就会对此行为进行拦截,并返回拒绝,使得恶意软件捕获鼠标消息失败,从而更好地保护用户系统不被破坏。

图3为本发明防止鼠标被恶意捕获的装置实施例一的结构示意图,如图3所示,本实施例的装置可以包括:监听模块11,用于监听进程对操作系统中捕获鼠标消息函数进行调用的事件;获取模块12,用于根据监听模块11监听到的事件,获取所述进程的进程路径;判断模块13,用于根据获取模块12获取到的所述进程路径,判断所述进程是否是恶意程序进程;阻止模块14,用于在判断模块13判断出所述进程是恶意程序进程时,拒绝所述进程捕获鼠标消息;在判断模块13判断出所述进程不是恶意程序进程时,调用捕获鼠标消息函数,同意所述进程捕获鼠标消息。

本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

在本发明防止鼠标被恶意捕获的装置实施例二中,当防止鼠标被恶意捕获的装置用于Windows操作系统中时,监听模块11中预先设置有挂钩操作系统中NtUserSetCapture函数的钩子函数,监听模块11通过所述钩子函数监听进程对操作系统中捕获鼠标消息函数进行调用的事件。阻止模块14通过所述钩子函数向所述进程返回拒绝消息或拒绝调用NtUserSetCapture函数,以拒绝捕获鼠标消息。

本实施例的装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

图4为本发明防止鼠标被恶意捕获的装置实施例三的结构示意图,如图4所示,本实施例的装置在图3所示装置结构的基础上,进一步地,判断模块13包括:

特征值计算子模块131,用于根据预先设置的特征值算法,获取获取模块12获取到的进程路径对应文件的特征值;匹配子模块132,用于判断预先设置的特征库中,是否记录有特征值计算子模块131获取到的进程路径对应文件的特征值,若预先设置的特征库中记录有所述进程路径对应文件的特征值,则确定所述进程为恶意程序进程;若预先设置的特征库中没有记录所述进程路径对应文件的特征值,则确定所述进程不是恶意程序进程;其中,所述预先设置的特征库中记录有已知恶意程序进程路径对应文件的特征值。

优选地,在实施例三中,特征值计算子模块131,具体用于求取获取模块12获取到的进程路径的计算消息摘要算法(MD5)值或哈希(HASH)值作为进程路径对应文件的特征值,或者从获取模块12获取到的进程路径中获取文件版本号作为进程路径对应文件的特征值。

优选地,实施例三所示的防止鼠标被恶意捕获的装置还包括特征库生成模块(图4未示出),用于预先统计已知恶意程序进程路径,并根据预先设置的特征值算法,获取所述已知恶意程序进程路径对应文件的特征值并存储在特征库中。

本实施例的装置,可以用于执行图1或图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明实施例还提供一种电子设备。图5为本发明电子设备一个实施例的结构示意图,可以实现本发明图1或图2所示实施例的流程,如图5所示,上述电子设备可以包括:壳体21、处理器22、存储器23、电路板24和电源电路25,其中,电路板24安置在壳体21围成的空间内部,处理器22和存储器23设置在电路板24上;电源电路25,用于为上述电子设备的各个电路或器件供电;存储器23用于存储可执行程序代码;处理器22通过读取存储器23中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的防止鼠标被恶意捕获的方法。

该电子设备以多种形式存在,包括但不限于:

(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。

(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。

(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放模块(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。

(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

(5)其他具有数据交互功能的电子设备。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1