一种拦截控制码的方法、装置及电子设备制造方法及图纸

技术编号:13954780 阅读:50 留言:0更新日期:2016-11-02 11:14
本发明专利技术的实施例公开一种拦截控制码的方法、装置及电子设备,涉及计算机系统优化技术领域,为更加安全地保护用户系统不被破坏而发明专利技术。所述拦截控制码的方法,包括:创建用于对控制码进行过滤的设备对象;将创建的所述设备对象附加到目标设备对象上;通过附加到所述目标设备对象上的所述设备对象,接收操作系统传递的请求包,对所述请求包中包含的控制码进行分析,确定所述控制码是否是需要拦截的控制码,若所述控制码是需要拦截的控制码,则拒绝将所述控制码传递给所述目标设备对象。所述装置和电子设备中包括实现上述方法步骤的模块。本发明专利技术适用于计算机系统优化的场合。

【技术实现步骤摘要】

本专利技术涉及计算机系统优化
,尤其涉及一种拦截控制码的方法、装置及电子设备
技术介绍
目前安全软件或称为安全应用程序能够拦截常规的恶意行为,比如采用系统导出的函数进行恶意操作,结束进程,修改注册表等。但是恶意软件可以采用非常规的方法进行恶意行为,比如采用系统未导出的函数进行恶意操作,这种方法的前提是恶意软件的进程会把信息通过控制码传递给其恶意驱动程序。其中,控制码为应用层进程与驱动程序的相互约定,应用层进程通过控制码来约定对应驱动程序完成特定的功能。恶意驱动程序收到相应控制码的数据时,采用非常规的方法进行恶意操作,拦截这种行为的方法就是拦截控制码的传递,常规的做法就是采用钩子(Hook)的方式拦截控制码。钩子是Windows消息处理机制的一个平台,应用程序可以在上面设置子程以监视指定窗口的某种消息,而且所监视的窗口可以是其他进程所创建的。当消息到达后,在目标窗口处理函数之前处理它。钩子机制允许应用程序截获处理window消息或特定事件。钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。现有技术中,采用钩子的方式拦截控制码的缺点是需要改变系统的处理机制,不够安全。
技术实现思路
有鉴于此,本专利技术实施例提供一种拦截控制码的方法、装置及电子设备,能够更加安全地保护用户系统不被破坏。第一方面,本专利技术实施例提供一种拦截控制码的方法,包括:创建用于对控制码进行过滤的设备对象;将创建的所述设备对象附加到目标设备对象上;通过附加到所述目标设备对象上的所述设备对象,接收操作系统传递的请求包,对所述请求包中包含的控制码进行分析,确定所述控制码是否是需要拦截的控制码,若所述控制码是需要拦截的控制码,则拒绝将所述控制码传递给所述目标设备对象。结合第一方面,在第一方面的第一种实施方式中,所述创建用于对控制码进行过滤的设备对象,包括:调用操作系统中用于生成过滤设备的函数,创建属于一反病毒应用程序的防御驱动程序的设备对象;其中,创建的所述设备对象用于对控制码进行过滤,并且创建的所述设备对象的设备类型与所述目标设备对象的设备类型相一致。结合第一方面或第一方面的第一种实施方式,在第一方面的第二种实施方式中,所述将创建的所述设备对象附加到目标设备对象上,包括:调用操作系统的内核中用于设备绑定的应用程序编程接口函数;将创建的所述用于对控制码进行过滤的设备对象和目标设备对象传入所述应用程序编程接口函数;通过所述应用程序编程接口函数,将创建的所述用于对控制码进行过滤的设备对象附加到目标设备对象上。结合第一方面的第二种实施方式,在第一方面的第三种实施方式中,所述操作系统为Windows操作系统;其中,所述调用操作系统的内核中用于设备绑定的应用程序编程接口函数,包括:判断所述目标设备对象是否有设备名称;若所述目标设备对象有设备名称,则调用操作系统的内核中用于设备绑定的IoAttachDevice函数;若所述目标设备对象没有设备名称,则调用操作系统的内核中用于设备绑定的IoAttachDeviceToDeviceStack函数。结合第一方面的第一种实施方式,在第一方面的第四种实施方式中,若所述控制码是需要拦截的控制码,所述方法还包括:所述用于对控制码进行过滤的设备对象,将所述控制码是需要拦截的控制码的信息,或者将拒绝将所述控制码传递给所述目标设备对象的信息,通知给所述反病毒应用程序的防御驱动程序。结合第一方面,在第一方面的第五种实施方式中,在创建用于对控制码进行过滤的设备对象之前,所述方法还包括:对控制码进行分析,确定所述控制码是否是需要拦截的控制码;若所述控制码是需要拦截的控制码,则确定所述控制码所对应的目标设备对象。第二方面,本专利技术实施例提供一种拦截控制码的装置,包括:设备对象创建模块,用于创建用于对控制码进行过滤的设备对象;附加模块,用于将所述用于对控制码进行过滤的设备对象附加到目标设备对象上;拦截模块,用于通过附加到所述目标设备对象上的所述设备对象,接收操作系统传递的请求包,对所述请求包中包含的控制码进行分析,确定所述控制码是否是需要拦截的控制码,若所述控制码是需要拦截的控制码,则拒绝将所述控制码传递给所述目标设备对象。结合第二方面,在第二方面的第一种实施方式中,所述设备对象创建模块,用于调用操作系统中用于生成过滤设备的函数,创建属于一反病毒应用程序的防御驱动程序的设备对象;其中,创建的所述设备对象用于对控制码进行过滤,并且创建的所述设备对象的设备类型与所述目标设备对象的设备类型相一致。结合第二方面或第二方面的第一种实施方式,在第二方面的第二种实施方式中,所述附加模块,包括:调用子模块,用于调用操作系统的内核中用于设备绑定的应用程序编程接口函数;传入子模块,用于将创建的所述用于对控制码进行过滤的设备对象和目标设备对象传入所述应用程序编程接口函数;附件附加子模块,用于通过所述应用程序编程接口函数,将创建的所述用于对控制码进行过滤的设备对象附加到目标设备对象上。结合第二方面的第二种实施方式,在第二方面的第三种实施方式中,所述操作系统为Windows操作系统;其中,所述调用子模块包括:判断单元,用于判断所述目标设备对象是否有设备名称;第一调用单元,用于若所述目标设备对象有设备名称,则调用操作系统的内核中用于设备绑定的IoAttachDevice函数;第二调用单元,用于若所述目标设备对象没有设备名称,则调用操作系统的内核中用于设备绑定的IoAttachDeviceToDeviceStack函数。结合第二方面的第一种实施方式,在第二方面的第四种实施方式中,所述的拦截控制码的装置,还包括:通知模块,用于若所述控制码是需要拦截的控制码,则将所述控制码是需要拦截的控制码的信息,或者将拒绝将所述控制码传递给所述目标设备对象的信息,通知给所述反病毒应用程序的防御驱动程序。结合第二方面,在第二方面的第五种实施方式中,所述的拦截控制码的装置,还包括:目标设备对象确定模块,用于在所述设备对象创建模块创建用于对控制码进行过滤的设备对象之前,对控制码进行分析,确定所述控制码是否是需要拦截的控制码,若所述控制码是需要拦截的控制码,则确定所述控制码所对应的目标设备对象。第三方面,本专利技术实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施方式所述的拦截控制码的方法。本专利技术实施例提供的一种拦截控制码的方法、装置及电子设备,对控制码进行拦截的方式,只需在目标设备对象上附加一个用于对控制码进行过滤的设备对象,通过该设备对象即可实现对控制码的过滤拦截,无需改变操作系统的处理机制,能够更加安全地保护用户系统不被破坏。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术本文档来自技高网...

【技术保护点】
一种拦截控制码的方法,其特征在于,包括:创建用于对控制码进行过滤的设备对象;将创建的所述设备对象附加到目标设备对象上;通过附加到所述目标设备对象上的所述设备对象,接收操作系统传递的请求包,对所述请求包中包含的控制码进行分析,确定所述控制码是否是需要拦截的控制码,若所述控制码是需要拦截的控制码,则拒绝将所述控制码传递给所述目标设备对象。

【技术特征摘要】
1.一种拦截控制码的方法,其特征在于,包括:创建用于对控制码进行过滤的设备对象;将创建的所述设备对象附加到目标设备对象上;通过附加到所述目标设备对象上的所述设备对象,接收操作系统传递的请求包,对所述请求包中包含的控制码进行分析,确定所述控制码是否是需要拦截的控制码,若所述控制码是需要拦截的控制码,则拒绝将所述控制码传递给所述目标设备对象。2.根据权利要求1所述的拦截控制码的方法,其特征在于,所述创建用于对控制码进行过滤的设备对象,包括:调用操作系统中用于生成过滤设备的函数,创建属于一反病毒应用程序的防御驱动程序的设备对象;其中,创建的所述设备对象用于对控制码进行过滤,并且创建的所述设备对象的设备类型与所述目标设备对象的设备类型相一致。3.根据权利要求1或2所述的拦截控制码的方法,其特征在于,所述将创建的所述设备对象附加到目标设备对象上,包括:调用操作系统的内核中用于设备绑定的应用程序编程接口函数;将创建的所述用于对控制码进行过滤的设备对象和目标设备对象传入所述应用程序编程接口函数;通过所述应用程序编程接口函数,将创建的所述用于对控制码进行过滤的设备对象附加到目标设备对象上。4.根据权利要求3所述的拦截控制码的方法,其特征在于,所述操作系统为Windows操作系统;其中,所述调用操作系统的内核中用于设备绑定的应用程序编程接口函数,包括:判断所述目标设备对象是否有设备名称;若所述目标设备对象有设备名称,则调用操作系统的内核中用于设备绑定的IoAttachDevice函数;若所述目标设备对象没有设备名称,则调用操作系统的内核中用于设备绑定的IoAttachDeviceToDeviceStack函数。5.根据权利要求2所述的拦截控制码的方法,其特征在于,若所述控制码是需要拦截的控制码,所述方法还包括:所述用于对控制码进行过滤的设备对象,将所述控制码是需要拦截的控制码的信息,或者将拒绝将所述控制码传递给所述目标设备对象的信息,通知给所述反病毒应用程序的防御驱动程序。6.根据权利要求1...

【专利技术属性】
技术研发人员:杨峰
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1