对象保护方法及装置的制作方法

文档序号:6357983阅读:197来源:国知局
专利名称:对象保护方法及装置的制作方法
技术领域
本发明涉及计算机领域,特别涉及一种对象保护方法及装置。
背景技术
进程是一个可执行的程序在计算机上一次运行的过程,它是系统进行资源分配和调度的一个独立单位。在进程的运行过程中,有可能会受到恶意攻击,使得打开的进程被恶意写入、挂起或者关闭,因此,需要对进程进行保护,以避免应用程序有时甚至是系统遭到 破坏。现有技术中米用HOOK SSDT(System Services Descriptor Table,系统服务描述符表)技术对进程进行保护。SSDT中保存有一个庞大的地址索引表,以及一些其它有用的信息,如地址索引的基地址,服务函数个数等。SSDT的功能是把ring3的Win32API (Application Programming Interface,应用程序接口 )和 ringO 的内核 API 联系起来。Ring是windows进行访问控制的级别,分为4层ring0、ringl、ring2和ring3。其中,操作系统工作在ringO层,可以访问所有层的数据,不受系统的限制;应用程序工作在ring3层,只能访问本层的数据,受系统的限制。H00K钩子函数是windows消息处理机制的一部分,通过设置钩子可以对系统的消息或事件等进行监控以及过滤。HOOK SSDT技术是指在SSDT中对进程相关的表项设置钩子,以便于对进程进行保护。但是现有的HOOK SSDT技术受CPU (Central Processing Unit,中央处理器)处理能力的限制,只能应用于windows 32位系统,即CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度只能为32位,处理器一次只能运行32bit数据。如果将HOOK SSDT技术应用于windows 64位系统,则进程的监控会被认为是恶意修改而导致蓝屏,从而无法实现对进程的保护。

发明内容
本发明实施例提供了一种对象保护方法及装置,以解决现有技术在WindOWS64位系统中无法实现对象保护的问题。一种对象保护方法,所述方法包括当执行非窗口对象的第一函数时,根据注册对象回调函数建立的所述第一函数与第一过滤函数的关联,跳转到所述第一过滤函数,所述第一过滤函数执行对所述非窗口对象的保护;当执行窗口对象的第二函数时,根据多用户管理驱动文件中的钩子或所述第二函数中的钩子所建立的所述第二函数与第二过滤函数的关联,跳转到所述第二过滤函数,所述第二过滤函数执行对所述窗口对象的保护。所述方法还包括预先通过注册对象回调函数建立所述第一函数与所述第一过滤函数的关联。所述方法还包括
预先为多用户管理驱动文件win32k. sys对ntoskrnl. exe的导入表中的添加系统服务表KeAddSystemServiceTable函数设置钩子,得到影子系统服务描述符表ShadowSSDT的基地址;
搜寻所述win32k. sys中任一函数边界的空操作NOP指令,用转移Jmp指令代替所述NOP指令,所述转移指令的目标地址为所述第二过滤函数的地址;对所述Jmp指令的地址相对于所述win32k. sys的偏移值进行左移4位,再加上所述第二函数的参数个数,得到一个数值;根据所述Shadow SSDT的基地址,在所述Shadow SSDT中用所述数值替换与所述第二函数对应的表项,建立所述第二函数与所述第二过滤函数的关联。所述方法还包括预先将所述第二函数中的起始指令替换为目标地址为所述第二过滤函数的地址的转移Jmp指令,建立所述第二函数与所述第二过滤函数的关联。所述第一过滤函数执行对所述对象的保护,包括所述第一过滤函数判断所述非窗口对象是否为被保护的进程或线程;如果是,则清除所述进程或线程的危险权限。所述第二过滤函数执行对所述对象的保护,包括所述第二过滤函数判断所述窗口对象是否为被保护的窗口 ;如果是,则过滤所述窗口的危险消息或不返回找到的所述窗口。一种对象保护装置,所述装置包括第一处理模块,用于当执行非窗口对象的第一函数时,根据注册对象回调函数建立的所述第一函数与第一过滤函数的关联,跳转到所述第一过滤函数,所述第一过滤函数执行对所述非窗口对象的保护;第二处理模块,用于当执行窗口对象的第二函数时,根据多用户管理驱动文件中的钩子或所述第二函数中的钩子所建立的所述第二函数与第二过滤函数的关联,跳转到所述第二过滤函数,所述第二过滤函数执行对所述窗口对象的保护。所述装置还包括第一建立模块,用于预先通过注册对象回调函数建立所述第一函数与所述第一过滤函数的关联。所述装置还包括第二建立模块,用于预先为多用户管理驱动文件win32k. sys对ntoskrnl. exe的导入表中的添加系统服务表KeAddSystemServiceTable函数设置钩子,得到影子系统服务描述符表Shadow SSDT的基地址;搜寻所述win32k. sys中任一函数边界的空操作NOP指令;用转移Jmp指令代替所述NOP指令,所述转移指令的目标地址为所述第二过滤函数的地址;对所述转移指令的地址相对于所述win32k. sys的偏移值进行左移4位,再加上所述第二函数的参数个数,得到一个数值;根据所述Shadow SSDT的基地址,在所述Shadow SSDT中用所述数值替换与所述第二函数对应的表项,建立所述第二函数与所述第二过滤函数的关联。所述装置还包括第三建立模块,用于预先将所述第二函数中的起始指令替换为目标地址为所述第二过滤函数的地址的转移Jmp指令,建立所述第二函数与所述第二过滤函数的关联。所述第一处理模块用于所述第一过滤函数判断所述非窗口对象是否为被保护的进程或线程,如果是,则清除所述进程或线程的危险权限。所述第二处理模块用于所述第二过滤函数判断所述窗口对象是否为被保护的窗口,如果是,则过滤所述窗口的危险消息或不返回找到的所述窗口。本发明实施例提供的上述技术方案,通过注册对象回调函数关联第一函数与第一过滤函数,实现对非窗口对象的保护,通过多用户管理驱动文件中的钩子或第二函数中的钩子关联第二函数与第二过滤函数,实现对窗口对象的保护,解决了 windows 64位系统上无法实现对象保护的问题,达到了 windows 64位系统上对象保护的效果。


图I是本发明实施例I提供的对象保护方法流程图;图2是本发明实施例2提供的对象保护方法流程图;图3是本发明实施例3提供的对象保护装置一种结构图;图4是本发明实施例3提供的对象保护装置另一种结构图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例I参见图1,本实施例提供了一种对象保护方法,包括101 :当执行非窗口对象的第一函数时,根据注册对象回调函数建立的第一函数与第一过滤函数的关联,跳转到第一过滤函数,第一过滤函数执行对所述非窗口对象的保护;102:当执行窗口对象的第二函数时,根据多用户管理驱动文件中的钩子或第二函数中的钩子所建立的第二函数与第二过滤函数的关联,跳转到第二过滤函数,第二过滤函数执行对所述窗口对象的保护。可选地,上述方法还包括预先通过注册对象回调函数建立第一函数与第一过滤函数的关联。可选地,上述方法还包括预先为多用户管理驱动文件win32k. sys对ntoskrnl. exe的导入表中的添加系统服务表KeAddSystemServiceTable函数设置钩子,得到影子系统服务描述符表ShadowSSDT的基地址;搜寻win32k. sys中任一函数边界的空操作NOP指令;用转移Jmp指令代替该NOP指令,所述转移指令的目标地址为所述第二过滤函数的地址;对所述转移指令的地址相对于win32k. sys的偏移值进行左移4位,再加上第二函数的参数个数,得到一个数值;根据Shadow SSDT的基地址,在Shadow SSDT中用所述数值替换与第二函数对应的表项,建立第二函数与第二过滤函数的关联。可选地,上述方法还包括预先将第二函数中的起始指令替换为目标地址为第二过滤函数的地址的转移Jmp指令,建立第二函数与第二过滤函数的关联。可选地,第一过滤函数执行对所述非窗口对象的保护,包括第一过滤函数判断所述非窗口对象是否为被保护的进程或线程;如果是,则清除所述进程或线程的危险权限。可选地,第二过滤函数执行对所述窗口对象的保护,包括第二过滤函数判断所述窗口对象是否为被保护的窗口 ;如果是,则过滤所述窗口的危险消息或不返回找到的所述窗口。、本实施例提供的上述方法,通过注册对象回调函数关联第一函数与第一过滤函数,实现对非窗口对象的保护,通过多用户管理驱动文件中的钩子或第二函数中的钩子关联第二函数与第二过滤函数,实现对窗口对象的保护,解决了 windows 64位系统上无法实现对象保护的问题,达到了 windows 64位系统上对象保护的效果。实施例2参见图2,本实施例提供了一种对象保护方法,包括201 :预先通过注册对象回调函数建立非窗口对象的第一函数与第一过滤函数的关联;其中,非窗口对象包括但不限于进程或线程,第一函数是指非窗口对象的被保护函数,包括NtOpenProcess创建进程函数或NtOpenThread创建线程函数,第一过滤函数为自定义的对该非窗口对象进行过滤保护的函数,该过滤保护包括清除该对象的危险权限。注册对象回调ObRegisterCallbacks函数为windows系统提供的标准API函数,用于为调用者提供可以调用自定义函数的接口,以方便调用者在某些条件下调用该自定义函数。本步骤中,该某些条件是指所述对象的被保护函数被调用,因此,可以在注册对象回调函数的参数中设置第一过滤函数的入口地址,以及所述对象的被保护函数,如NtOpenProcess或NtOpenThread,从而在系统驱动程序加载时就将对象的被保护函数与第一过滤函数关联起来。一旦该对象的被保护函数被调用,则根据该关联会自动按照上述入口地址找到第一过滤函数并执行该第一过滤函数。本实施例中,线程是操作系统CPU时间的基本单元,是系统中最小的执行单元。它与进程的主要差别在于它们是不同的操作系统资源管理方式。操作系统创建并控制进程,进程包含和控制线程,一个进程可以包含多个线程,而且Windows系统中可以同时运行多个进程。202:当执行非窗口对象的第一函数时,根据注册对象回调函数建立的第一函数与第一过滤函数的关联,跳转到第一过滤函数;203 :第一过滤函数判断当前的非窗口对象是否为被保护的进程或线程;如果是,则清除该进程或线程的危险权限。本实施例中,进程或线程均可以拥有多项权限,如创建权限、终止权限、读取权限等等,当需要对进程或线程进行保护时,能够修改、挂起或关闭进程或线程的权限就被视为危险权限,通过清除危险权限可以使得进程或线程在打开的状态下无法被修改、挂起或关闭,从而达到保护的目的。其中,进程的危险权限可以包括但不限于以下至少一种PR0CESS_CREATE_THREAD ;// 创建一个线程的权限
PR0CESS_SET_INF0RMATI0N ;// 设置进程属性的权限PROCESS_SUSPEND_RESUME ;// 暂停或恢复进程的权限PROCESS_TERMINATE ;// 终止一个进程的权限PR0CESS_VM_0PERATI0N ;//操作进程内存空间的权限PROCESS_VM_WRITE ;//读取进程内存空间的权限第一过滤函数通过清除上述进程危险权限,可以使得windows 64位系统中打开的进程不能被写入、挂起及关闭,从而达到保护进程的目的。其中,线程的危险权限可以包括但不限于以下至少一种 THREAD_TERMINATE ;// 终止一个线程的权限THREAD_SUSPEND_RESUME ; //暂停或恢复线程的权限THREAD_SET_CONTEXT ; //设置线程的上下文的权限THREAD_SET_INFORMATION ; // 设置线程属性的权限WRITE_DAC ;//修改线程的访问控制列表的权限WRITE_0WNER ;//修改线程安全属性所有者的权限第一过滤函数通过清除上述线程危险权限,可以使得windows 64位系统中打开的线程不能被写入、挂起及关闭,从而达到保护线程的目的。204 :预先在多用户管理驱动文件中设置钩子,建立窗口对象的第二函数与第二过滤函数的关联;其中,第二函数是指窗口对象的被保护函数,至少包括以下的一种NtUserPostMessage ;// 投递消息NtUserFindffindowEx ;//查找窗口NtUserBuildHwndList ;//枚举窗口NtUserffindowFromPoint ; //根据屏幕上的点查找窗口NtUserSendInput ;// 向窗口发送输入消息NtUserGetForeGroundffindow ;// 获取前台窗口第二过滤函数为自定义的对窗口对象进行过滤保护的函数,该过滤保护包括过滤所述窗口的危险消息或不返回找到的所述窗口。其中,对于被保护的窗口向其发送消息则被视为危险消息,需要进行过滤,另外,查找被保护的窗口也被视为危险行为,需要屏蔽使其查找不到,因此,对于窗口对象的不同被保护函数,执行的过滤操作也不完全相同。下面举例说明上述六种被保护函数对应的过滤操作,具体如下a) NtUserPostMessage 函数对应的第二过滤函数执行如下过滤判断目标窗口是否是被保护的窗口,如果是,则过滤掉危险消息,该危险消息包括WM_CL0SE消息和WM_QUIT消息。b) NtUserFindWindowEx 函数对应的第二过滤函数执行如下过滤调用真实的NtUserFindWindowEx函数查找窗口,如果找到的窗口是被保护的窗口,则返回空,否则返回找到窗口的句柄。c)NtUserBuildHwndList 函数对应的第二过滤函数执行如下过滤调用真实的NtUserBuildHwndList函数生成窗口列表,然后遍历该窗口列表,将被保护的窗口从该窗口列表中删掉,然后系统调用返回。d) NtUserffindowFromPoint 函数对应的过滤函数执行如下过滤调用真实的NtUserWindowFromPoint函数获取窗口,如果找到的窗口是被保护的窗口,则返回空,否则返回找到的窗口。e) NtUserSendInput 函数对应的过滤函数执行如下过滤判断目标窗口是否是被保护的窗口,并且输入参数中含有鼠标或者键盘消息,如果是,则返回失败,否则调用真实的NtUserSendlnput函数发送。f) NtUserGetForeGroundffindow 函数 对应的过滤函数执行如下过滤调用真实的NtUserGetForeGroundffindow函数获取前台窗口,如果该前台窗口是属于被保护进程的,则返回空,否则返回前台窗口。本步骤在多用户管理驱动文件中设置钩子,建立窗口对象的第二函数与第二过滤函数的关联的具体过程可以如下I)为 win32k. sys 对 ntoskrnl. exe 的导入表中的 KeAddSystemServiceTable 函数设置钩子,得到影子系统服务描述符表Shadow SSDT的基地址;其中,win32k. sys文件是Windows系统中的多用户管理的驱动文件,一般在c:\Windows\System32\Dllcache目录下有此文件的备份;2)搜寻win32k. sys中任一函数边界的NOP指令,NOP指令是用于函数在内存空间对齐的填充指令,因此可以将其替换为别的指令且不会对程序造成影响;3)用转移Jmp指令代替该NOP指令,该Jmp指令的目标地址为第二过滤函数的地址,从而保证执行到Jmp指令时可以按照该目标地址跳转到第二过滤函数;4)对Jmp指令的地址相对于win32k. sys的偏移值进行左移4位,再加上第二函数的参数个数,得到一个数值,其中,该数值是用来替换Shadow SSDT中的表项的,因此该数值是按照windows 64位系统的Shadow SSDT中表项的计算方法得到的;5)根据上述得到的Shadow SSDT的基地址,在Shadow SSDT中用该数值替换其中与第二函数对应的表项,建立第二函数与第二过滤函数的关联。205 :当执行窗口对象的第二函数时,根据第二函数与第二过滤函数的关联,跳转到第二过滤函数;206 :第二过滤函数判断当前对象是否为被保护的窗口 ;如果是,则过滤该窗口的危险消息或不返回查找到的窗口,从而保证窗口对象的安全。本实施例中204还可以由以下步骤替换预先将窗口对象的第二函数中的起始指令替换为目标地址为第二过滤函数的地址的转移Jmp指令,建立第二函数和第二过滤函数的关联。本实施例提供的上述方法应用于windows 64位系统。其中,64位是指CPUGPRs通用寄存器的数据宽度为64位,与32位处理器一次只能处理32位即4个字节的数据明显不同,64位处理器一次就能处理64位即8个字节的数据。另外,本发明实施例还提供了 windows 32位系统上的对象保护方法,包括分别为SSDT和Shadow SSDT设置钩子H00K,当执行非窗口对象的被保护函数时,通过H00KSSDT关联的过滤函数对进程或线程进行保护,当执行窗口对象的被保护函数时,通过H00KShadow SSDT关联的过滤函数对窗口进行保护。其中,在windows 32位系统中为SSDT设置钩子的过程如下提升当前IRQL到DPCLEVEL ;关中断;清除CRO寄存器的WP位;原子写入操作替换SSDT项;恢复CRO寄存器的WP位;开中断;恢复当前IRQL。在windows 32位上为Shadow SSDT设置钩子的过程如下找到Csrss. exe进程,KeStackAttachProcess切换到Csrss ;从当前线程结构中找到ShadowSSDT的指针;提升当前IRQL到DPC DEVEL ;关中断;清除CRO寄存器的WP位;原子写入操作替换SSDT项;恢复CRO寄存器的WP位;开中断;恢复当前IRQL。在windows 32位系统上对进程或线程进行保护时,涉及的进程危险权限以及线程危险权限均与上述windows 64位系统中的描述相同,涉及的窗口对象被保护的函数以及对应的过滤操作也与上述windows 64位系统中的描述相同,此处不赘述。本实施例提供的上述方法,通过注册对象回调函数关联第一函数与第一过滤函数,实现对非窗口对象的保护,通过多用户管理驱动文件或第二函数中的钩子关联第二函 数与第二过滤函数,实现对窗口对象的保护,解决了 windows 64位系统上无法实现对象保护的问题,达到了 windows 64位系统上对象保护的效果。实施例3参见图3,本实施例提供了一种对象保护装置,包括第一处理模块301,用于当执行非窗口对象的第一函数时,根据注册对象回调函数建立的第一函数与第一过滤函数的关联,跳转到第一过滤函数,第一过滤函数执行对非窗口对象的保护;第二处理模块302,用于当执行窗口对象的第二函数时,根据多用户管理驱动文件中的钩子或第二函数中的钩子所建立的第二函数与第二过滤函数的关联,跳转到第二过滤函数,第二过滤函数执行对窗口对象的保护。参见图4,本实施例中,所述装置还可以包括第一建立模块303,用于预先通过注册对象回调函数建立第一函数与第一过滤函数的关联。本实施例中,所述装置还可以包括第二建立模块304,用于预先为多用户管理驱动文件win32k. sys对ntoskrnl. exe的导入表中的添加系统服务表KeAddSystemServiceTable函数设置钩子,得到影子系统服务描述符表Shadow SSDT的基地址;搜寻win32k. sys中任一函数边界的空操作NOP指令;用转移Jmp指令代替该NOP指令,所述转移指令的目标地址为第二过滤函数的地址;对所述转移指令的地址相对于win32k. sys的偏移值进行左移4位,再加上第二函数的参数个数,得到一个数值;根据所述Shadow SSDT的基地址,在Shadow SSDT中用所述数值替换与第二函数对应的表项,建立第二函数与第二过滤函数的关联;或者包括第三建立模块305,用于预先将第二函数中的起始指令替换为目标地址为第二过滤函数的地址的转移Jmp指令,建立第二函数与第二过滤函数的关联。本实施例中,第一处理模块301可以用于第一过滤函数判断非窗口对象是否为被保护的进程或线程,如果是,则清除所述进程或线程的危险权限。本实施例中,第二处理模块302可以用于第二过滤函数判断窗口对象是否为被保护的窗口,如果是,则过滤所述窗口的危险消息或不返回找到的所述窗口。本实施例提供的上述装置,通过注册对象回调函数关联第一函数与第一过滤函数,实现对非窗口对象的保护,通过多用户管理驱动文件或第二函数中的钩子关联第二函数与第二过滤函数,实现对窗口对象的保护,解决了 windows 64位系统上无法实现对象保护的问题,达到了 windows 64位系统上对象保护的效果。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种对象保护方法,其特征在于,所述方法包括 当执行非窗口对象的第一函数时,根据注册对象回调函数建立的所述第一函数与第一过滤函数的关联,跳转到所述第一过滤函数,所述第一过滤函数执行对所述非窗口对象的保护; 当执行窗口对象的第二函数 时,根据多用户管理驱动文件中的钩子或所述第二函数中的钩子所建立的所述第二函数与第二过滤函数的关联,跳转到所述第二过滤函数,所述第二过滤函数执行对所述窗口对象的保护。
2.根据权利要求I所述的方法,其特征在于,所述方法还包括 预先通过注册对象回调函数建立所述第一函数与所述第一过滤函数的关联。
3.根据权利要求I所述的方法,其特征在于,所述方法还包括 预先为多用户管理驱动文件win32k. sys对ntoskrnl. exe的导入表中的添加系统服务表KeAddSystemServiceTable函数设置钩子,得到影子系统服务描述符表Shadow SSDT的基地址; 搜寻所述win32k. sys中任一函数边界的空操作NOP指令,用转移Jmp指令代替所述NOP指令,所述转移指令的目标地址为所述第二过滤函数的地址; 对所述Jmp指令的地址相对于所述win32k. sys的偏移值进行左移4位,再加上所述第二函数的参数个数,得到一个数值; 根据所述Shadow SSDT的基地址,在所述Shadow SSDT中用所述数值替换与所述第二函数对应的表项,建立所述第二函数与所述第二过滤函数的关联。
4.根据权利要求I所述的方法,其特征在于,所述方法还包括 预先将所述第二函数中的起始指令替换为目标地址为所述第二过滤函数的地址的转移Jmp指令,建立所述第二函数与所述第二过滤函数的关联。
5.根据权利要求I所述的方法,其特征在于,所述第一过滤函数执行对所述非窗口对象的保护,包括 所述第一过滤函数判断所述非窗口对象是否为被保护的进程或线程; 如果是,则清除所述进程或线程的危险权限。
6.根据权利要求I所述的方法,其特征在于,所述第二过滤函数执行对所述窗口对象的保护,包括 所述第二过滤函数判断所述窗口对象是否为被保护的窗口; 如果是,则过滤所述窗口的危险消息或不返回找到的所述窗口。
7.一种对象保护装置,其特征在于,所述装置包括 第一处理模块,用于当执行非窗口对象的第一函数时,根据注册对象回调函数建立的所述第一函数与第一过滤函数的关联,跳转到所述第一过滤函数,所述第一过滤函数执行对所述非窗口对象的保护; 第二处理模块,用于当执行窗口对象的第二函数时,根据多用户管理驱动文件中的钩子或所述第二函数中的钩子所建立的所述第二函数与第二过滤函数的关联,跳转到所述第二过滤函数,所述第二过滤函数执行对所述窗口对象的保护。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括 第一建立模块,用于预先通过注册对象回调函数建立所述第一函数与所述第一过滤函数的关联。
9.根据权利要求7所述的装置,其特征在于,所述装置还包括 第二建立模块,用于预先为多用户管理驱动文件win32k. sys对ntoskrnl. exe的导入表中的添加系统服务表KeAddSystemServiceTable函数设置钩子,得到影子系统服务描述符表Shadow SSDT的基地址;搜寻所述win32k. sys中任一函数边界的空操作NOP指令;用转移Jmp指令代替所述NOP指令,所述转移指令的目标地址为所述第二过滤函数的地址;对所述转移指令的地址相对于所述win32k. sys的偏移值进行左移4位,再加上所述第二函数的参数个数,得到一个数值;根据所述Shadow SSDT的基地址,在所述Shadow SSDT中用所述数值替换与所述第二函数对应的表项,建立所述第二函数与所述第二过滤函数的关联。
10.根据权利要求7所述的装置,其特征在于,所述装置还包括 第三建立模块,用于预先将所述第二函数中的起始指令替换为目标地址为所述第二过滤函数的地址的转移Jmp指令,建立所述第二函数与所述第二过滤函数的关联。
11.根据权利要求7所述的装置,其特征在于,所述第一处理模块用于所述第一过滤函数判断所述非窗口对象是否为被保护的进程或线程,如果是,则清除所述进程或线程的危险权限。
12.根据权利要求7所述的装置,其特征在于,所述第二处理模块用于所述第二过滤函数判断所述窗口对象是否为被保护的窗口,如果是,则过滤所述窗口的危险消息或不返回找到的所述窗口。
全文摘要
本发明公开了一种对象保护方法及装置,属于计算机领域。所述方法包括当执行非窗口对象的第一函数时,根据注册对象回调函数建立的所述第一函数与第一过滤函数的关联,跳转到所述第一过滤函数,所述第一过滤函数执行对所述非窗口对象的保护;当执行窗口对象的第二函数时,根据多用户管理驱动文件中的钩子或所述第二函数中的钩子所建立的所述第二函数与第二过滤函数的关联,跳转到所述第二过滤函数,所述第二过滤函数执行对所述窗口对象的保护。所述装置包括第一处理模块和第二处理模块。本发明解决了windows 64位系统上无法实现对象保护的问题,达到了windows 64位系统上对象保护的效果。
文档编号G06F21/22GK102737198SQ201110092598
公开日2012年10月17日 申请日期2011年4月13日 优先权日2011年4月13日
发明者谢飞, 高小明 申请人:腾讯科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1