内核地址防止恶意修改方法、装置以及终端与流程

文档序号:11951606阅读:340来源:国知局
内核地址防止恶意修改方法、装置以及终端与流程

本发明涉及终端技术,尤其涉及一种内核地址防止恶意修改方法、装置以及终端。



背景技术:

随着互联网技术发展,病毒,木马等恶意程序技术层出不穷,对用户的计算机构成了极大的危害,个别恶意程序为了自身的存活,利用非常规手段直接从应用层修改内核地址,以破坏保护程序的防御功能来达到自身软件存活,传播等病毒行为。



技术实现要素:

本发明实施例公开了一种内核地址防止恶意修改方法、装置以及终端,能够解决恶意程序随意修改内核地址的问题。

第一方面,提供了一种内核地址防止恶意修改方法,包括:通过钩子函数接收系统操作请求,其中,所述请求包括操作码以及修改地址;根据所述操作码判断操作是否为修改内核地址操作;如果判断结果是修改内核地址操作,则进一步根据修改地址判断是否为内核保护地址;如果判断结果是内核保护地址,则拒绝所述请求。

结合第一方面,第一方面的第一种可能的实施方式中,根据所述操作码判断操作是否为修改内核地址操作具体包括:判断操作码的值是否为第一值或者第二值,其中,第一值用于表示修改物理内存地址,第二值用于表示修改虚拟内存地址;如果所述操作码的值是第一值或者第二值,则确定操作时修改内核地址。

结合第一方面,第一方面的第二种可能的实施方式中,根据判断出修改地址是否为内核保护地址之前还包括:获取保护程序的基地址以及所述保护程序的大小;根据所述保护程序的基地址以及所述保护程序的大小计算得到所述保护程序的内核保护地址。

结合第一方面,第一方面的第三种可能的实施方式中,通过钩子函数接收系统操作请求之前还包括:

将系统服务描述符表中的原函数的地址用所述钩子函数的地址代替,其中,所述原函数用于修改内核地址。

结合第一方面的第三种可能的实施方式,第一方面的第四种可能的实施方式中,所述原函数为NtSystemDebugControl函数。

第二方面,提供了一种内核地址防止恶意修改装置,包括接收模块、第一判断模块、第二判断模块以及拒绝模块,所述接收模块用于通过钩子函数接收系统操作请求,其中,所述请求包括操作码以及修改地址;所述第一判断模块用于根据所述操作码判断操作是否为修改内核地址操作;所述第二判断模块用于判断结果是修改内核地址操作时,根据修改地址判断是否为内核保护地址;所述拒绝模块用于判断结果是内核保护地址时,拒绝所述请求。

结合第二方面,第二方面的第一种可能的实施方式中,所述第一判断模块包括判断单元以及确定单元,所述判断单元用于判断操作码的值是否为第一值或者第二值,其中,第一值用于表示修改物理内存地址,第二值用于表示修改虚拟内存地址;所述确定单元用于在所述操作码的值是第一值或者第二值时,确定操作时修改内核地址。

结合第二方面,第二方面的第二种可能的实施方式中,所述装置还包括获取模块以及计算模块,所述获取模块用于获取保护程序的基地址以及所述保护程序的大小;所述计算模块用于根据所述保护程序的基地址以及所述保护程序的大小计算得到所述保护程序的内核保护地址。

结合第二方面,第二方面的第三种可能的实施方式中,所述装置还包括替代模块,所述替代模块用于将系统服务描述符表中的原函数的地址用所述钩子函数的地址代替,其中,所述原函数用于修改内核地址。

结合第二方面的第三种可能的实施方式,第二方面的第四种可能的实施方式中,所述原函数为NtSystemDebugControl函数。

第三方面,提供了一种终端,其特征在于,包括:处理器、存储器、通信接口和总线;所述处理器、所述存储器和所述通信接口通过所述总线连接并完成相互间的通信;所述存储器存储可执行程序代码;所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行一种内核地址防止恶意修改方法;其中,所述方法为第一方面任一项所述的方法。

第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质存储了计算设备所执行的用于主题推荐的程序代码。所述程序代码包括用于执行在第一方面中任一项的方法的指令。

上述方案,能够通过钩子函数接收系统操作请求,并判断操作是否为修改内核地址操作,以及修改地址是否为内核保护地址,如果两者都符合,则禁止修改内核保护地址,从而避免了恶意程序的危害。

附图说明

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

图1是本发明实施例公开的一种内核地址防止恶意修改方法的流程图;

图2是本发明实施例公开的一种内核地址防止恶意修改装置的结构示意图;

图3是本发明实施例公开的另一种内核地址防止恶意修改装置的结构示意图;

图4是本发明实施例公开的一种终端的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

为了便于理解,首先对现有技术中恶意程序是如何修改内核保护地址进行描述。

当恶意程序要求修改内核保护地址时,恶意程序将ntdll模块的NtSystemDebugControl函数中的操作码的值设置为修改内核地址的值,然后,直接通过调用NtSystemDebugControl函数对内核地址进行修改。现有的NtSystemDebugControl函数并不会对操作码的内容以及修改的内核地址进行区分,任何程序都可以调用NtSystemDebugControl函数对任何内核地址进行修改,即使是恶意程序调用NtSystemDebugControl函数对内核保护地址进行修改也同样可以。

参阅图1,图1是本发明实施例公开的一种内核地址防止恶意修改方法的流程图。本实施例的内核地址防止恶意修改方法从终端的角度出发进行描述。本发明实施例的内核地址防止恶意修改方法包括:

110:通过钩子函数接收系统操作请求,其中,请求包括操作码以及修改地址。

120:根据操作码判断操作是否为修改内核地址操作。其中,内核地址是系统维护的一块内存空间,正常情况下,只有驱动程序可以访问,应用层的程序是不可以访问内核地址的。

130:根据修改地址判断是否为内核保护地址。

140:拒绝请求。

在执行步骤110之前,可以将系统服务描述符表中的原函数(即,NtSystemDebugControl函数)的地址用钩子函数(即,NewNtSystemDebugControl函数)的地址代替。使得代替后,当恶意程序意图调用原函数时,实际调用到的将会是钩子函数。其中,NtSystemDebugControl函数是可直接从应用层程序进入到内核层,并可修改内核地址数据的函数。

恶意程序要求修改内核保护地址时,将ntdll模块的NtSystemDebugControl函数中的操作码的值设置为修改内核地址的值,然后,直接通过调用NtSystemDebugControl函数对内核地址进行修改。但是,由于系统服务描述符表中的原函数的地址已经被钩子函数的地址所代替,所以,恶意程序实际上调用到的将是钩子函数。

钩子函数在接收到系统操作请求后,根据操作码判断出操作为修改内核地址操作,而且,修改地址是内核保护地址。于是,钩子函数返回拒绝访问状态,以直接拒绝恶意程序修改内核保护地址的请求,避免恶意程序危害终端。

在本发明实施例中,钩子函数根据操作码判断出操作为修改内核地址操作的方法具体为:钩子函数判断操作码的值是否为第一值或者第二值,其中,第一值用于表示修改物理内存地址,例如,第一值为SysDbgWritePhysical,第二值用于表示修改虚拟内存地址,例如,第二值为SysDbgWriteVirtual。如果操作码的值是第一值或者第二值,则确定操作时修改内核地址。

在本发明实施例中,钩子函数判断修改地址是否为内核保护地址的方法具体为:首先,终端获取保护程序的基地址以及保护程序的大小,并根据保护程序的基地址以及保护程序的大小计算得到保护程序的内核保护地址。例如,保护程序的基地址为0x60000000,保护程序的大小为20000000,则内核保护地址为0x60000000~0x80000000。然后,终端将修改地址与内核保护地址进行比较,如果修改地址部分或者全部落入内核保护地址的范围,则判断修改地址为内核保护地址。其中,保护程序可以是杀毒软件等等。

上述详细阐述了本发明实施例的方法,下面为了便于更好地实施本发明实施例的上述方案,相应地,下面还提供用于配合实施上述方案的装置。

参阅图2,图2是本发明实施例公开的一种内核地址防止恶意修改装置的结构示意图。本发明实施例的内核地址防止恶意修改装置20包括:接收模块210、第一判断模块220、第二判断模块230以及拒绝模块240。

所述接收模块210用于通过钩子函数接收系统操作请求,其中,所述请求包括操作码以及修改地址。

所述第一判断模块220用于根据所述操作码判断操作是否为修改内核地址操作。

所述第二判断模块230用于判断结果是修改内核地址操作时,根据修改地址判断是否为内核保护地址。

所述拒绝模块240用于判断结果是内核保护地址时,拒绝所述请求。

请参见图3,图3为本发明实施例公开的另一种内核地址防止恶意修改装置的结构示意图。本发明实施例的内核地址防止恶意修改装置30是根据图2所示的内核地址防止恶意修改装置20优化得到的。本实施例的内核地址防止恶意修改装置30和图2所示的内核地址防止恶意修改装置20的不同之处在于,还包括:获取模块250、计算模块260以及替代模块270。

所述获取模块250用于获取保护程序的基地址以及所述保护程序的大小。

所述计算模块260用于根据所述保护程序的基地址以及所述保护程序的大小计算得到所述保护程序的内核保护地址。

所述替代模块270用于将系统服务描述符表中的原函数的地址用所述钩子函数的地址代替。

进一步地,第一判断模块220包括判断单元221以及确定单元223。其中,

所述判断单元221用于判断操作码的值是否为第一值或者第二值,其中,第一值用于表示修改物理内存地址,第二值用于表示修改虚拟内存地址;

所述确定单元223用于在所述操作码的值是第一值或者第二值时,确定操作时修改内核地址。

可选地,所述原函数为NtSystemDebugControl函数。

本发明实施例的内核地址防止恶意修改装置20和30能够实现如图1所示的内核地址防止恶意修改方法,具体请参阅图1以及相关实施例,此处不再重复赘述。

请参见图4,图4为本发明实施例公开的一种终端的结构示意图。本实施例的网站包括:至少一个处理器401、通信接口402、用户接口403和存储器404,处理器401、通信接口402、用户接口403和存储器404可通过总线或者其它方式连接,本发明实施例以通过总线405连接为例。其中,

处理器401可以是通用处理器,例如中央处理器(Central Processing Unit,CPU)。

通信接口402可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他终端或网站进行通信。本发明实施例中,通信接口402具体用于将目标推荐对象推荐给终端的用户。

用户接口403具体可为触控面板,包括触摸屏和触控屏,用于检测触控面板上的操作指令,用户接口403也可以是物理按键或者鼠标。用户接口403还可以为显示屏,用于输出、显示图像或数据。

存储器404可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器404还可以包括上述种类的存储器的组合。存储器404用于存储一组程序代码,处理器401用于调用存储器404中存储的程序代码,执行如下操作:

通过钩子函数接收系统操作请求,其中,所述请求包括操作码以及修改地址;

根据所述操作码判断操作是否为修改内核地址操作;

如果判断结果是修改内核地址操作,则进一步根据修改地址判断是否为内核保护地址;

如果判断结果是内核保护地址,则拒绝所述请求。

可选地,判断操作码的值是否为第一值或者第二值,其中,第一值用于表示修改物理内存地址,第二值用于表示修改虚拟内存地址;

如果所述操作码的值是第一值或者第二值,则确定操作时修改内核地址。

可选地,获取保护程序的基地址以及所述保护程序的大小;根据所述保护程序的基地址以及所述保护程序的大小计算得到所述保护程序的内核保护地址。

可选地,将系统服务描述符表中的原函数的地址用所述钩子函数的地址代替,其中,所述原函数用于修改内核地址。

可选地,所述原函数为NtSystemDebugControl函数。

上述方案,能够通过钩子函数接收系统操作请求,并判断操作是否为修改内核地址操作,以及修改地址是否为内核保护地址,如果两者都符合,则禁止修改内核保护地址,从而避免了恶意程序的危害。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。

以上对本发明实施例公开的一种终端防盗方法及终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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