一种信息处理方法及装置的制造方法

文档序号:10655918阅读:146来源:国知局
一种信息处理方法及装置的制造方法
【专利摘要】本发明实施例提供了一种信息处理方法及装置。该方法包括:检测是否接收到对第一函数的调用请求,第一函数为:系统内核层中用于执行窗口重画操作的函数,调用请求中包括针对待重画窗口的重画类型;若为是,判断重画类型是否为无效类型;若为是,判断生成调用请求的第一程序是否为恶意程序;若为是,拦截第一函数,以拒绝响应调用请求。与现有技术相比,本发明中,当检测到对第一函数的调用请求时,在重画类型为无效类型,且第一程序是恶意程序的情况下,电子设备会对第一函数进行拦截,故待重画窗口不会被重画为无效类型的窗口,创建待重画窗口的程序仍可正常运行,这样大大地提高了用户的使用体验,同时也较好地保证了电子设备的安全性。
【专利说明】
_种信息处理方法及装置
技术领域
[0001 ]本发明涉及计算机技术领域,特别是涉及一种信息处理方法及装置。
【背景技术】
[0002]随着互联网技术的迅猛发展,病毒、木马等恶意程序技术层出不穷,这些恶意程序可能会对电子设备的正常运行带来非常不利的影响。具体来说,恶意程序会通过调用特定的函数来对电子设备中的程序所创建的窗口进行重画,并使该重画类型为无效类型。这样,在重画操作完成后,该窗口将无法接收消息,故创建该窗口的程序将无法正常运行,相应地,用户也无法使用该程序,这样会给用户带来非常不好的使用体验。因此,如何避免恶意程序将电子设备中的程序所创建的窗口重画为无效类型的窗口是一个亟待解决的问题。

【发明内容】

[0003]本发明实施例的目的在于提供一种信息处理方法及装置,以避免恶意程序将电子设备中的程序所创建的窗口重画为无效类型的窗口,从而大大地提高了用户的使用体验。
[0004]本发明实施例提供了一种信息处理方法,所述方法包括:
[0005]检测是否接收到对第一函数的调用请求,其中,所述第一函数为:系统内核层中用于执行窗口重画操作的函数,所述调用请求中包括针对待重画窗口的重画类型;
[0006]若为是,判断所述重画类型是否为无效类型;
[0007]若所述重画类型是无效类型,判断生成所述调用请求的第一程序是否为恶意程序;
[0008]若所述第一程序是恶意程序,拦截所述第一函数,进而拒绝响应所述调用请求。
[0009]更进一步的,上述方法中,所述判断生成所述调用请求的第一程序是否为恶意程序之后,所述方法还包括:
[0010]若所述第一程序不是恶意程序,调用所述第一函数,以响应所述调用请求。
[0011 ] 更进一步的,上述方法中,若所述重画类型是无效类型,所述方法还包括:
[0012]判断所述待重画窗口是否为生成所述调用请求的第一程序创建的,若为否,执行所述判断生成所述调用请求的第一程序是否为恶意程序。
[0013]更进一步的,上述方法中,所述判断所述待重画窗口是否为生成所述调用请求的第一程序创建的,包括:
[0014]获取所述待重画窗口的窗口句柄标识;
[0015]根据所述窗口句柄标识,获取与所述窗口句柄标识相对应的程序路径信息;
[0016]获取所述第一程序的路径信息;
[0017]判断所述路径信息与所述程序路径信息是否相同,如果不是,表明所述待重画窗口不是生成所述调用请求的第一程序创建的。
[0018]更进一步的,上述方法中,所述判断生成所述调用请求的第一程序是否为恶意程序,包括:
[0019]获取生成所述调用请求的第一程序的路径信息;
[0020]根据所述路径信息,获取所述路径信息所对应的数据文件;
[0021]根据所述数据文件的文件内容,确定所述第一程序的目标内容标识值;
[0022]根据所述目标内容标识值和预设对应关系,确定所述第一程序是否为恶意程序,其中,所述预设对应关系为关于多个内容标识值与程序安全类型的对应关系,所述程序安全类型的种类包括恶意类型和非恶意类型。
[0023]更进一步的,上述方法中,所述判断生成所述调用请求的第一程序是否为恶意程序,包括:
[0024]获取生成所述调用请求的第一程序的路径信息;
[0025]根据所述路径信息,获取所述路径信息所对应的数据文件;
[0026]根据所述数据文件的文件内容,确定所述第一程序的目标内容标识值;
[0027]判断本地存储的恶意数据库中是否存在所述目标内容标识值,其中,所述恶意数据库中存储有多个恶意程序的内容标识值,若存在,表明所述第一程序是恶意程序。
[0028]更进一步的,上述方法中,所述内容标识值为MD5值或哈希值。
[0029]更进一步的,上述方法中,所述检测是否接收到对第一函数的调用请求,包括:
[0030]通过设置钩子函数的方式,检测是否接收到对第一函数的调用请求。
[0031]本发明实施例还提供了一种信息处理装置,包括:
[0032]调用请求检测模块,用于检测是否接收到对第一函数的调用请求,其中,所述第一函数为:系统内核层中用于执行窗口重画操作的函数,所述调用请求中包括针对待重画窗口的重画类型;
[0033]调用请求类型判断模块,用于在检测到对第一函数的调用请求的情况下,判断所述重画类型是否为无效类型;
[0034]恶意程序判断模块,用于在所述重画类型是无效类型的情况下,判断生成所述调用请求的第一程序是否为恶意程序;
[0035]第一执行模块,用于在所述第一程序是恶意程序的情况下,拦截所述第一函数,进而拒绝响应所述调用请求。
[0036]更进一步的,上述装置还包括:
[0037]第二执行模块,用于在判断所述第一程序是否为恶意程序,且判断结果为否的情况下,调用所述第一函数,以响应所述调用请求。
[0038]更进一步的,上述装置还包括:
[0039]窗口创建对象判断模块,用于在所述重画类型是无效类型的情况下,判断所述待重画窗口是否为生成所述调用请求的第一程序创建的,若为否,触发所述恶意程序判断模块。
[0040]更进一步的,上述装置中,所述窗口创建对象判断模块,包括:
[0041 ]窗口句柄标识获取单元,用于获取所述待重画窗口的窗口句柄标识;
[0042]程序路径信息获取单元,用于根据所述窗口句柄标识,获取与所述窗口句柄标识相对应的程序路径信息;
[0043]第一路径信息获取单元,用于获取所述第一程序的路径信息;
[0044]路径信息判断单元,用于判断所述路径信息与所述程序路径信息是否相同,如果不是,表明所述待重画窗口不是生成所述调用请求的第一程序创建的。
[0045]更进一步的,上述装置中,所述恶意程序判断模块,包括:
[0046]第二路径信息获取单元,用于获取生成所述调用请求的第一程序的路径信息;
[0047]第一数据文件获取单元,用于根据所述路径信息,获取所述路径信息所对应的数据文件;
[0048]第一目标内容标识值确定单元,用于根据所述数据文件的文件内容,确定所述第一程序的目标内容标识值;
[0049]第一恶意程序确定单元,用于根据所述目标内容标识值和预设对应关系,确定所述第一程序是否为恶意程序,其中,所述预设对应关系为关于多个内容标识值与程序安全类型的对应关系,所述程序安全类型的种类包括恶意类型和非恶意类型。
[0050]更进一步的,上述装置中,所述恶意程序判断模块,包括:
[0051]第三路径信息获取单元,用于获取生成所述调用请求的第一程序的路径信息;
[0052]第二数据文件获取单元,用于根据所述路径信息,获取所述路径信息所对应的数据文件;
[0053]第二目标内容标识值确定单元,用于根据所述数据文件的文件内容,确定所述第一程序的目标内容标识值;
[0054]第二恶意程序确定单元,用于判断本地存储的恶意数据库中是否存在所述目标内容标识值,其中,所述恶意数据库中存储有多个恶意程序的内容标识值,若存在,表明所述第一程序是恶意程序。
[0055]更进一步的,上述装置中,所述内容标识值为MD5值或哈希值。
[0056]更进一步的,上述装置中,所述调用请求检测模块具体用于通过设置钩子函数的方式,检测是否接收到对第一函数的调用请求。
[0057]本发明实施例提供了一种信息处理方法及装置。该方法包括:检测是否接收到对第一函数的调用请求,其中,第一函数为:系统内核层中用于执行窗口重画操作的函数,调用请求中包括针对待重画窗口的重画类型;若为是,判断重画类型是否为无效类型;若重画类型是无效类型,判断生成调用请求的第一程序是否为恶意程序;若第一程序是恶意程序,拦截第一函数,进而拒绝响应调用请求。与现有技术相比,本发明实施例中,当检测到对系统内核层中用于执行窗口重画操作的第一函数的调用请求时,电子设备不会立即调用第一函数,而是依次判断调用请求中的重画类型是否为无效类型,以及生成调用请求的第一程序是否为恶意程序,在重画类型为无效类型,且生成调用请求的第一程序是恶意程序的情况下,电子设备会对第一函数进行拦截,进而拒绝响应调用请求,相应地,待重画窗口将不会被重画为无效类型的窗口,创建待重画窗口的程序仍可正常运行,用户仍可继续使用该程序,这样可以大大地提高用户的使用体验,同时也较好地保证了电子设备的安全性。
【附图说明】
[0058]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0059]图1为本发明实施例提供的信息处理方法的流程图;
[0060]图2为本发明实施例提供的信息处理方法的又一流程图;
[0061 ]图3为本发明实施例提供的信息处理方法的又一流程图;
[0062]图4为本发明实施例提供的信息处理装置的结构框图。
【具体实施方式】
[0063]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0064]为了解决现有技术存在的问题,本发明实施例提供了一种信息处理方法及装置。
[0065]下面首先对本发明实施例所提供的一种信息处理方法进行介绍。
[0066]需要说明的是,本发明实施例所提供的一种信息处理方法可以应用于电子设备中。在实际应用中,该电子设备可以为智能手机、平板电脑、笔记本电脑等,这都是合理的。
[0067]另外,实现本发明实施例所提供的一种信息处理方法的功能软件可以为独立的客户端软件,或者,也可以为现有客户端软件中的插件,这都是合理的。
[0068]参见图1,图中示出了本发明所提供的一种信息处理方法的流程图。如图1所示,该方法可以包括:
[0069]SlOl,检测是否接收到对第一函数的调用请求,其中,第一函数为:系统内核层中用于执行窗口重画操作的函数,调用请求中包括针对待重画窗口的重画类型,如果是,执行S102o
[0070]本领域技术人员可以理解的是,窗口是电子设备的用户界面中最为重要的组成部分。具体地,窗口是电子设备的屏幕上与一个程序相对应的矩形区域,该矩形区域包括框架和客户区,由框架和客户区组合而成的矩形区域构成了用户与创建该窗口的程序之间进行交互的可视界面。每当用户开始运行一个程序时,该程序就会向电子设备的操作系统发送请求,以使操作系统创建并显示一个与该程序相对应的窗口,当用户操作该窗口中的对象时,该程序就会作出相应的反应,例如,当用户关闭该窗口时,创建该窗口的程序就会停止运行。
[0071]目前,在很多情况下,需要对电子设备中的窗口进行重画,为了实现该目的,电子设备的操作系统提供了两个用于执行窗口重画操作的函数,其中,一个函数位于系统内核层中,另一个函数位于系统应用层中。具体地,位于系统内核层中的函数,即第一函数可以为NtUserRedrawWindow函数,位于系统应用层中的函数可以为RedrawWindow函数。
[0072]这样,当系统内核层中的程序希望对待重画窗口进行重画时,该程序就会发出对系统内核层中的NtUserRedrawWindow函数的调用请求,并在调用请求中明确待重画窗口具体是哪一个窗口,以及重画类型具体是无效类型还是非无效类型,最终,若NtUserRedrawWindow函数被成功调用,待重画窗口即可被成功重画。
[0073]类似地,当系统应用层中的程序希望对待重画窗口进行重画时,该程序会发出对系统应用层中的Re dr awW i ndow函数以及对系统内核层中的NtU s erRedrawff i ndo w函数的调用请求,并在调用请求中明确待重画窗口具体是哪一个窗口,以及重画类型具体是无效类型还是非无效类型,最终,若RedrawWindow函数和NtUserRedrawWindow函数被依次成功调用,待重画窗口即可被成功重画。
[0074]可以看出,不管程序是属于系统内核层还是系统应用层,若其要对待重画窗口进行重画,最终都需要调用系统内核层中用于执行窗口重画操作的函数,即第一函数。也就是说,只要检测到对第一函数的调用请求,就说明有程序请求对待重画窗口进行重画。因此,只要对针对第一函数的调用请求进行检测,就可以有效地检测所有程序的重画请求,从而避免对某些程序发出的重画请求的遗漏。
[0075]需要说明的是,根据重画类型的不同,若第一函数被成功调用,则创建待重画窗口的程序的状态会存在较大的差异。
[0076]具体来说,若重画类型是非无效类型,则当第一函数被成功调用后,待重画窗口中将不会存在无效区域,并且,待重画窗口仍能正常地接收消息,相应地,创建待重画窗口的程序仍能正常运行。也就是说,当重画类型不是无效类型时,无论发出调用请求的程序是不是恶意程序,创建待重画窗口的程序的正常运行均不会受到影响,故此时电子设备可以直接调用第一函数,以响应调用请求。
[0077]若重画类型是无效类型,则当第一函数被成功调用后,待重画窗口中将不会存在无效区域,并且,待重画窗口将无法接收消息,即创建待重画窗口的程序无法正常运行。这种情况下,发出调用请求的程序极有可能是恶意程序,并且,由于创建待重画窗口的程序无法正常运行,这样会给用户带来非常不好的使用体验。更为严重的是,当待重画窗口为安全软件创建的窗口时,一旦第一函数被成功调用,安全软件将无法正常运行,即无法执行正常的防御功能,此时电子设备很容易受到恶意软件的攻击,整个电子设备的安全性会大大地降低。因此,为了较好地解决上述隐患,当接收到对第一函数的调用请求时,电子设备不会立即执行调用第一函数的步骤,而会先执行S102,相应地,待重画窗口将不会立即被重画。
[0078]需要强调的是,检测是否接收到对第一函数的调用请求的具体实现方式存在多种,为了布局清楚,后续进行举例介绍。
[0079]S102,判断重画类型是否为无效类型,如果是,执行S103。
[0080]具体地,电子设备可以通过判断调用请求中的重画标志是否为RDW_INVALIDATE
(I)来判断重画类型是否为无效类型。若重画标志是RDW_INVALIDATE(1),则表明重画类型是无效类型,此时调用请求很有可能是由恶意软件发出的,为了避免恶意软件对创建待重画窗口的程序的正常运行造成影响,电子设备不会立即执行调用第一函数的步骤,而会先执行S103,相应地,待重画窗口将不会立即被重画。若重画标志不是RDW_INVALIDATE(1),则表明重画类型是非无效类型,电子设备会直接执行调用第一函数的步骤,以响应调用请求。
[0081]S103,判断生成调用请求的第一程序是否为恶意程序,如果是,执行S104。
[0082]需要说明的是,恶意程序一般是指计算机系统中用来执行恶意任务的病毒、蠕虫或者特洛伊木马等,恶意程序一般通过破坏电子设备的软件进程来实施对电子设备的攻击。
[0083]本领域技术人员可以理解的是,进程是指计算机系统中的程序关于某数据集合上的一次运行活动,其是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。简单来说,程序是指令、数据及其组织形式的描述,进程是程序的实体。
[0084]需要强调的是,判断生成调用请求的第一程序是否为恶意程序的具体实现方式存在多种,为了布局清楚,后续进行举例介绍。
[0085]S104,拦截第一函数,进而拒绝响应调用请求。
[0086]当判断出第一程序是恶意程序时,为了避免恶意程序对创建待重画窗口的程序的正常运行造成影响,电子设备会对第一函数进行拦截,以拒绝响应调用请求。
[0087]与现有技术相比,本实施例中,当检测到对系统内核层中用于执行窗口重画操作的第一函数的调用请求时,电子设备不会立即调用第一函数,而是依次判断调用请求中的重画类型是否为无效类型,以及生成调用请求的第一程序是否为恶意程序,在重画类型为无效类型,且生成调用请求的第一程序是恶意程序的情况下,电子设备会对第一函数进行拦截,进而拒绝响应调用请求,相应地,待重画窗口将不会被重画为无效类型的窗口,创建待重画窗口的程序仍可正常运行,用户仍可继续使用该程序,这样可以大大地提高用户的使用体验,同时也较好地保证了电子设备的安全性。
[0088]参见图2,图中示出了本发明所提供的一种信息处理方法的又一流程图。如图2所示,该方法可以包括:
[0089]S201,检测是否接收到对第一函数的调用请求,其中,第一函数为:系统内核层中用于执行窗口重画操作的函数,调用请求中包括针对待重画窗口的重画类型,如果是,执行S202o
[0090]S202,判断重画类型是否为无效类型,如果是,执行S203。
[0091]S203,判断生成调用请求的第一程序是否为恶意程序,如果是,执行S204,否则,执行S205。
[0092]S204,拦截第一函数,进而拒绝响应调用请求。
[0093]S205,调用第一函数,以响应调用请求。
[0094]其中,S201至S204的具体实施过程参照对SlOl至S104的说明即可,在此不再赘述。
[0095]当S203中判断出第一程序不是恶意程序时,则说明希望将待重画窗口重画为无效类型的窗口的程序并不是恶意程序,而是非恶意程序,此时,将待重画窗口重画为无效类型的窗口的操作是用户所希望的,因此,电子设备可以调用第一函数。当第一函数被成功调用后,待重画窗口即可按照用户的需求被重画。
[0096]参见图3,图中示出了本发明所提供的一种信息处理方法的又一流程图。如图3所示,该方法可以包括:
[0097]S301,检测是否接收到对第一函数的调用请求,其中,第一函数为:系统内核层中用于执行窗口重画操作的函数,调用请求中包括针对待重画窗口的重画类型,如果是,执行S302o
[0098]S302,判断重画类型是否为无效类型,如果是,执行S303。
[0099]其中,S301和S302的具体实施过程参照对SlOl和S102的说明即可,在此不再赘述。
[0100]S303,判断待重画窗口是否为生成调用请求的第一程序创建的,如果是,执行S304。
[0101]本实施例中,若判断出待重画窗口是生成调用请求的第一程序创建的,则说明第一程序希望对自身创建的窗口进行重画,相应地,对待重画窗口的重画操作不会对其他程序的正常运行造成影响,因此,电子设备可以直接调用第一函数,以响应调用请求,而不需要再判断发出调用请求的第一程序是否为恶意程序。若判断出待重画窗口不是生成调用请求的第一程序创建的,则说明第一程序希望对其他程序创建的窗口进行重画,此时,第一程序有可能会对其他程序的正常运行造成影响,因此,此时电子设备不会立即调用第一函数,而会先判断第一程序是否为恶意程序。
[0102]需要说明的是,判断待重画窗口是否为生成调用请求的第一程序创建的具体实现方式存在多种,为了布局清楚,后续进行举例介绍。
[0103]S304,判断生成调用请求的第一程序是否为恶意程序,如果是,执行S305。
[0104]S305,拦截第一函数,进而拒绝响应调用请求。
[0105]可以看出,本实施例也可以较好地避免了恶意程序将电子设备中的程序所创建的窗口重画为无效类型的窗口,从而大大地提高了用户的使用体验。
[0106]更进一步的,判断待重画窗口是否为生成调用请求的第一程序创建的具体实现方式存在多种,下面进行举例介绍:
[0107]在一种具体实现方式中,判断待重画窗口是否为生成调用请求的第一程序创建的,可以包括:
[0108]获取待重画窗口的窗口句柄标识;
[0109]根据窗口句柄标识,获取与窗口句柄标识相对应的程序路径信息;
[0110]获取第一程序的路径信息;
[0111]判断路径信息与程序路径信息是否相同,如果不是,表明待重画窗口不是生成调用请求的第一程序创建的。
[0112]本领域技术人员可以理解的是,当电子设备检测到对第一函数的调用请求后,电子设备根据调用请求可以非常容易地获得待重画窗口的窗口句柄标识以及生成调用请求的第一程序的路径信息,并且,在获得窗口句柄标识后,电子设备根据该窗口句柄标识也可以非常容易地获得与该窗口句柄标识相对应的程序路径信息,该程序路径信息即为创建待重画窗口的程序的路径信息。接下来,电子设备会将获取到的两个路径信息进行比对,若两者相同,则说明生成调用请求的第一程序与创建待重画窗口的程序为同一个程序,即待重画窗口是生成调用请求的第一程序创建的,此时对待重画窗口的重画操作不会对其他的程序的正常运行造成影响,故电子设备可以直接调用第一函数,否则,电子设备需要先对第一程序是否为恶意程序进行判断,在判断结果为否的情况下,电子设备才会去调用第一函数。
[0113]更进一步的,判断生成调用请求的第一程序是否为恶意程序的具体实现方式存在多种,下面进行举例介绍:
[0114]在一种具体实现方式中,判断生成调用请求的第一程序是否为恶意程序,可以包括:
[0115]获取生成调用请求的第一程序的路径信息;
[0116]根据路径信息,获取路径信息所对应的数据文件;
[0117]根据数据文件的文件内容,确定第一程序的目标内容标识值;
[0118]根据目标内容标识值和预设对应关系,确定第一程序是否为恶意程序,其中,预设对应关系为关于多个内容标识值与程序安全类型的对应关系,程序安全类型的种类包括恶意类型和非恶意类型。
[0119]本实施例中,电子设备内可以具有一数据库,该数据库内可以存储有多个内容标识值与程序安全类型之间的预设对应关系。
[0120]实际判断过程中,电子设备可以先获取生成调用请求的第一程序的路径信息,然后根据该路径信息,从与该路径信息对应的存储区域中获取第一程序所对应的数据文件,该数据文件的文件内容即为构成第一程序的所有代码,然后,电子设备可以根据构成第一程序的所有代码,确定第一程序的目标内容标识值。具体地,电子设备可以通过预设的加密算法对构成第一程序的所有代码进行加密,以获得目标内容标识值,该目标内容标识值可以对第一程序进行标识。接下来,电子设备可以根据目标内容标识值和预设对应关系,从数据库中获取与目标内容标识值相对应的程序安全类型。若与目标内容标识值所对应的程序安全类型为恶意类型,则说明第一程序是恶意程序,此时电子设备拦截第一函数,故待重画窗口将不会被重画为无效类型的窗口;若与目标内容标识值所对应的程序安全类型为非恶意类型,则说明第一程序不是恶意程序,此时电子设备会调用第一函数,故待重画窗口将会被重画为无效类型的窗口。
[0121]在另一种具体实现方式中,判断生成调用请求的第一程序是否为恶意程序,可以包括:
[0122]获取生成调用请求的第一程序的路径信息;
[0123]根据路径信息,获取路径信息所对应的数据文件;
[0124]根据数据文件的文件内容,确定第一程序的目标内容标识值;
[0125]判断本地存储的恶意数据库中是否存在目标内容标识值,其中,恶意数据库中存储有多个恶意程序的内容标识值,若存在,表明第一程序是恶意程序。
[0126]本实施例中,电子设备内可以具有一恶意数据库,该恶意数据库内可以存储有多个恶意程序的内容标识值。
[0127]实际判断过程中,电子设备可以先获取生成调用请求的第一程序的路径信息,然后根据该路径信息,从与该路径信息对应的存储区域中获取第一程序所对应的数据文件,该数据文件的文件内容即为构成第一程序的所有代码,然后,电子设备可以根据构成第一程序的所有代码,确定第一程序的目标内容标识值。具体地,电子设备可以通过预设的加密算法对构成第一程序的所有代码进行加密,以获得目标内容标识值,该目标内容标识值可以对第一程序进行标识。接下来,电子设备可以在恶意数据库中查找目标内容标识值,若在恶意数据库中查找到目标内容标识值,即表明第一程序是恶意程序,此时电子设备拦截第一函数,故待重画窗口将不会被重画为无效类型的窗口;若在恶意数据库中未查找到目标内容标识值,即表明第一程序不是恶意程序,此时电子设备会调用第一函数,故待重画窗口将会被重画为无效类型的窗口。
[0128]需要说明的是,上述实施例中,内容标识值可以为MD5值或哈希值。这样,在获取到第一程序所对应的数据文件后,电子设备可以根据现有的、用于获得MD5值或哈希值的加密算法来对构成第一程序的所有代码进行加密,以获得第一程序所对应的目标MD5值或目标哈希值。接下来,电子设备会根据目标MD5值或目标哈希值所对应的程序安全类型,或者目标MD5值或目标哈希值是否存在于恶意数据库中,从而最终确定第一程序是否为恶意程序。
[0129]需要强调的是,内容标识值的类型并不仅仅限于MD5值或哈希值,其也可以为其他类型的、可以通过加密算法得到的标识值,这都是可行的。
[0130]可以看出,通过上述方式来判断第一程序是否为恶意程序时,判断过程实施起来均非常便捷。
[0131]更进一步的,检测是否接收到对第一函数的调用请求的具体实现方式存在多种,下面进行举例介绍:
[0132]在一种具体实现方式中,检测是否接收到对第一函数的调用请求,可以包括:
[0133]通过设置钩子函数的方式,检测是否接收到对第一函数的调用请求。
[0134]需要说明的是,钩子是Windows处理机制的一个平台,程序可以在该平台上设置子程序以监视指定窗口的某种动作,并且,其所监视的窗口可以是其他程序创建的。对于钩子函数而言,其实际上是一个处理消息的程序段,其可以挂入系统中,这样,每当有特定的消息发出之后,在该消息到达目标窗口之前,钩子函数就会将该消息捕获,并取得对该消息的控制权。具体地,钩子函数可以加工处理该消息,或者钩子函数也可以不做处理并传递该消息,或者钩子函数也可以强制结束该消息的传递。
[0135]下面以第一函数为NtUserRedrawWindow函数,仓Li建待重画窗口的程序为金山毒霸的情况为例,对本实施例中的钩子函数的工作原理进行详细说明。
[0136]首先,可以在金山毒霸的防御驱动程序中设置一钩子函数,并使该钩子函数与NtUserRedrawWindow函数进行挂钩。这样,当第一程序希望对金山毒霸的窗口进行重画时,第一程序就会发出调用请求,以通知电子设备的操作系统去调用NtUserRedrawWindow函数,该钩子函数会先于NtUserRedrawWindow函数接收到调用请求,此时电子设备会在钩子函数中判断重画类型是否为无效类型,若重画类型不是无效类型,电子设备就会直接调用NtUserRedrawWindow函数,否则,电子设备就会在钩子函数中判断创建待重画窗口的程序和第一程序是不是同一个程序。若创建待重画窗口的程序和第一程序是同一个程序,那么电子设备就会直接调用NtUserRedrawWindow函数,否则,电子设备就会在钩子函数中判断生成调用请求的第一程序是否为恶意程序。若第一程序不是恶意程序,电子设备就会直接调用NtUserRedrawWindow函数,以响应调用请求,否则,金山毒霸的防御驱动程序就会拦截NtUserRedrawWindow函数,这样,恶意程序将金山毒霸的窗口重画为无效类型的窗口的请求失败,金山毒霸能够正常地运行,以可靠地保证电子设备的安全性。
[0137]需要说明的是,驱动程序一般是指设备驱动程序,其是一种可以使计算机和设备通信的特殊程序,其相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,若某设备的驱动程序未能正确安装,那么该设备将无法正常工作。因此,驱动程序被比作“硬件的灵魂”、“硬件的主宰”和“硬件和系统之间的桥梁”等。
[0138]可以看出,当采用钩子函数的方式来检测对第一函数的调用请求时,该检测操作执行起来非常方便。
[0139]综上,本实施例提供的信息处理方法较好地避免了恶意程序将电子设备中的程序所创建的窗口重画为无效类型的窗口,从而大大地提高了用户的使用体验。
[0140]相应于上述方法实施例,本发明实施例还提供了一种信息处理装置。下面对本发明所提供的一种信息处理装置进行说明。
[0141]参见图4,图中示出了本发明所提供的一种信息处理装置的结构框图。如图4所示,该装置可以包括:
[0142]调用请求检测模块41,用于检测是否接收到对第一函数的调用请求,其中,第一函数为:系统内核层中用于执行窗口重画操作的函数,调用请求中包括针对待重画窗口的重画类型;
[0143]调用请求类型判断模块42,用于在检测到对第一函数的调用请求的情况下,判断重画类型是否为无效类型;
[0144]恶意程序判断模块43,用于在重画类型是无效类型的情况下,判断生成调用请求的第一程序是否为恶意程序;
[0145]第一执行模块44,用于在第一程序是恶意程序的情况下,拦截第一函数,进而拒绝响应调用请求。
[0146]与现有技术相比,本实施例中,当检测到对系统内核层中用于执行窗口重画操作的第一函数的调用请求时,电子设备不会立即调用第一函数,而是依次判断调用请求中的重画类型是否为无效类型,以及生成调用请求的第一程序是否为恶意程序,在重画类型为无效类型,且生成调用请求的第一程序是恶意程序的情况下,电子设备会对第一函数进行拦截,进而拒绝响应调用请求,相应地,待重画窗口将不会被重画为无效类型的窗口,创建待重画窗口的程序仍可正常运行,用户仍可继续使用该程序,这样可以大大地提高用户的使用体验,同时也较好地保证了电子设备的安全性。
[0147]更进一步的,上述装置还包括:
[0148]第二执行模块,用于在判断第一程序是否为恶意程序,且判断结果为否的情况下,调用第一函数,以响应调用请求。
[0149]更进一步的,上述装置还包括:
[0150]窗口创建对象判断模块,用于在重画类型是无效类型的情况下,判断待重画窗口是否为生成调用请求的第一程序创建的,若为否,触发恶意程序判断模块。
[0151]更进一步的,上述装置中,窗口创建对象判断模块,包括:
[0152]窗口句柄标识获取模块,用于获取待重画窗口的窗口句柄标识;
[0153]程序路径信息获取单元,用于根据窗口句柄标识,获取与窗口句柄标识相对应的程序路径信息;
[0154]第一路径信息获取单元,用于获取第一程序的路径信息;
[0155]路径信息判断单元,用于判断路径信息与程序路径信息是否相同,如果不是,表明待重画窗口不是生成调用请求的第一程序创建的。
[0156]更进一步的,上述装置中,恶意程序判断模块,包括:
[0157]第二路径信息获取单元,用于获取生成调用请求的第一程序的路径信息;
[0158]第一数据文件获取单元,用于根据路径信息,获取路径信息所对应的数据文件;
[0159]第一目标内容标识值确定单元,用于根据数据文件的文件内容,确定第一程序的目标内容标识值;
[0160]第一恶意程序确定单元,用于根据目标内容标识值和预设对应关系,确定第一程序是否为恶意程序,其中,预设对应关系为关于多个内容标识值与程序安全类型的对应关系,程序安全类型的种类包括恶意类型和非恶意类型。
[0161 ]更进一步的,上述装置中,恶意程序判断模块,包括:
[0162]第三路径信息获取单元,用于获取生成调用请求的第一程序的路径信息;
[0163]第二数据文件获取单元,用于根据路径信息,获取路径信息所对应的数据文件;
[0164]第二目标内容标识值确定单元,用于根据数据文件的文件内容,确定第一程序的目标内容标识值;
[0165]第二恶意程序确定单元,用于判断本地存储的恶意数据库中是否存在目标内容标识值,其中,恶意数据库中存储有多个恶意程序的内容标识值,若存在,表明第一程序是恶意程序。
[0166]更进一步的,上述装置中,内容标识值为MD5值或哈希值。
[0167]更进一步的,上述装置中,调用请求检测模块具体用于通过设置钩子函数的方式,检测是否接收到对第一函数的调用请求。
[0168]综上,本实施例提供的信息处理装置较好地避免了恶意程序将电子设备中的程序所创建的窗口重画为无效类型的窗口,从而大大地提高了用户的使用体验。
[0169]需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0170]本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0171]以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
【主权项】
1.一种信息处理方法,其特征在于,所述方法包括: 检测是否接收到对第一函数的调用请求,其中,所述第一函数为:系统内核层中用于执行窗口重画操作的函数,所述调用请求中包括针对待重画窗口的重画类型; 若为是,判断所述重画类型是否为无效类型; 若所述重画类型是无效类型,判断生成所述调用请求的第一程序是否为恶意程序; 若所述第一程序是恶意程序,拦截所述第一函数,进而拒绝响应所述调用请求。2.如权利要求1所述的方法,其特征在于,所述判断生成所述调用请求的第一程序是否为恶意程序之后,所述方法还包括: 若所述第一程序不是恶意程序,调用所述第一函数,以响应所述调用请求。3.如权利要求1所述的方法,其特征在于,若所述重画类型是无效类型,所述方法还包括: 判断所述待重画窗口是否为生成所述调用请求的第一程序创建的,若为否,执行所述判断生成所述调用请求的第一程序是否为恶意程序。4.如权利要求3所述的方法,其特征在于,所述判断所述待重画窗口是否为生成所述调用请求的第一程序创建的,包括: 获取所述待重画窗口的窗口句柄标识; 根据所述窗口句柄标识,获取与所述窗口句柄标识相对应的程序路径信息; 获取所述第一程序的路径信息; 判断所述路径信息与所述程序路径信息是否相同,如果不是,表明所述待重画窗口不是生成所述调用请求的第一程序创建的。5.如权利要求1所述的方法,其特征在于,所述判断生成所述调用请求的第一程序是否为恶意程序,包括: 获取生成所述调用请求的第一程序的路径信息; 根据所述路径信息,获取所述路径信息所对应的数据文件; 根据所述数据文件的文件内容,确定所述第一程序的目标内容标识值; 根据所述目标内容标识值和预设对应关系,确定所述第一程序是否为恶意程序,其中,所述预设对应关系为关于多个内容标识值与程序安全类型的对应关系,所述程序安全类型的种类包括恶意类型和非恶意类型。6.如权利要求1所述的方法,其特征在于,所述判断生成所述调用请求的第一程序是否为恶意程序,包括: 获取生成所述调用请求的第一程序的路径信息; 根据所述路径信息,获取所述路径信息所对应的数据文件; 根据所述数据文件的文件内容,确定所述第一程序的目标内容标识值; 判断本地存储的恶意数据库中是否存在所述目标内容标识值,其中,所述恶意数据库中存储有多个恶意程序的内容标识值,若存在,表明所述第一程序是恶意程序。7.如权利要求5或6所述的方法,其特征在于,所述内容标识值为MD5值或哈希值。8.如权利要求1-6中任一项所述的方法,其特征在于,所述检测是否接收到对第一函数的调用请求,包括: 通过设置钩子函数的方式,检测是否接收到对第一函数的调用请求。9.一种信息处理装置,其特征在于,包括: 调用请求检测模块,用于检测是否接收到对第一函数的调用请求,其中,所述第一函数为:系统内核层中用于执行窗口重画操作的函数,所述调用请求中包括针对待重画窗口的重画类型; 调用请求类型判断模块,用于在检测到对第一函数的调用请求的情况下,判断所述重画类型是否为无效类型; 恶意程序判断模块,用于在所述重画类型是无效类型的情况下,判断生成所述调用请求的第一程序是否为恶意程序; 第一执行模块,用于在所述第一程序是恶意程序的情况下,拦截所述第一函数,进而拒绝响应所述调用请求。10.如权利要求9所述的装置,其特征在于,还包括: 第二执行模块,用于在判断所述第一程序是否为恶意程序,且判断结果为否的情况下,调用所述第一函数,以响应所述调用请求。
【文档编号】G06F21/55GK106022122SQ201610373229
【公开日】2016年10月12日
【申请日】2016年5月31日
【发明人】杨峰
【申请人】北京金山安全软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1