函数地址获取及应用其的方法、装置、设备及存储介质制造方法及图纸

技术编号:16128369 阅读:26 留言:0更新日期:2017-09-01 20:36
一种函数地址获取及应用其的方法、装置、设备及存储介质,获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。由于上述方法、装置、计算机设备及存储介质,无需通过硬编码形式的指令序列的严格搜索对比,便可以确定内核配置信息操作对应的操作实现函数的地址,因此其兼容性有所提高。

Function address acquisition, method, device, device and storage medium for accessing the same

A function address acquisition and application of the method, apparatus, equipment and storage medium, access to the kernel configuration information according to the operation of the stack memory starting address; according to the starting address of the search memory unit corresponding with the preset parameters of the kernel function in the stack memory; obtain the preset parameters and return address the relative deviation, and determine the location of the return address according to the relative offset and the address of the memory cell; according to the storage location determines the return address, and according to the instructions before the return address of the corresponding instruction, determining the kernel configuration information according to the operation of operation to achieve function address. Because of the above method, device, computer equipment and storage medium, no need to search through the strict sequence of instructions in the form of hard contrast encoding, they can determine the kernel configuration information according to the operation of operation to achieve the function of the address, so the compatibility is improved.

【技术实现步骤摘要】
函数地址获取及应用其的方法、装置、设备及存储介质
本专利技术涉及软件安全
,特别是涉及一种操作实现函数地址获取方法及装置、一种内核配置信息操作方法及装置,以及对应的一种计算机设备和一种计算机存储介质。
技术介绍
在常见的安全软件中,内核配置信息的操作,如注册表穿透操作通常由用户层接口和内核层驱动配合来实现。当产品需要操作内核配置信息时,调用用户层接口,将传入的参数信息发送给内核驱动,内核驱动根据这些参数执行具体操作。由于内核驱动拥有较高的权限且处于系统底层,这就能尽量保证操作可以正常执行,不会被恶意软件拦截。系统内核在完成用户层的内核配置信息操作请求时,在用户层的操作请求转入内核中后,内核通过调用一个应答请求的封装接口(如,ZwSetValueKey,注册表项值设置的封装接口,用于应答用户层RegSetValue的操作请求;其中,RegSetValue为应用层接口,用于向内核层发送设置注册表项值的操作请求)来应答用户层的操作请求。该封装接口继而调用参数有效性验证及资源准备函数(如,NtSetValueKey,用于完成设置注册表项的值的参数有效性验证及资源准备),验证参数有效性并准备资源,然后调用对应的操作实现函数(如,CmSetValueKey,内核中用于实现设置注册表值的操作的函数)来完成最终的操作。常见的内核配置信息的操作(如注册表穿透驱动)都是模仿系统内核的实现方法,自己实现一套参数有效性验证及资源准备函数(如NtXXXXX系列的注册表参数有效性验证及资源准备函数)。参数有效性验证及资源准备函数需要调用对应的操作实现函数来完成最终的操作,但是操作实现函数(如,CmXXXXXX系列的注册表操作实现函数)都是未文档化的函数,无法直接进行调用。传统的解决未文档化的操作实现函数无法调用问题的内核配置信息操作方法包括:在内核地址空间中搜索操作实现函数。具体地,先通过逆向内核文件得到操作实现函数的指令序列(或者调用该操作实现函数的指令序列),然后在内核地址空间中搜索该指令序列。需要说明的是该指令序列由硬编码表示,由于不同的系统版本采用不同的硬编码,因此其兼容性差。
技术实现思路
基于此,有必要针对兼容性差的问题,提供一种提高兼容性的操作实现函数地址获取、内核配置信息操作方法及装置、计算机设备、计算机存储介质。一种操作实现函数地址获取方法,包括:获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。一种操作实现函数地址获取方法,包括:获取内核加载的内存的地址范围;获取所述地址范围内的调用指令;将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。一种内核配置信息操作方法,包括:获取根据权利要求上述的操作实现函数地址获取方法,获得的内核配置信息操作对应的操作实现函数的地址;接收操作请求;根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数。一种操作实现函数地址获取装置,包括:起始地址获取模块,用于获取内核配置信息操作对应的栈内存的起始地址;内存单元搜索模块,用于根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;存储位置确定模块,用于获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;函数地址确定模块,用于根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。一种操作实现函数地址获取装置,包括:地址范围获取模块,用于获取内核加载的内存的地址范围;调用指令获取模块,用于获取所述地址范围内的调用指令;候选函数确定模块,用于将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;函数地址确定模块,用于将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。一种内核配置信息操作装置,包括:操作函数地址获取模块,用于获取根据上述的操作实现函数地址获取装置,获得的内核配置信息操作对应的操作实现函数的地址;操作请求接收模块,用于接收操作请求;操作实现调用模块,用于根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数。一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取内核加载的内存的地址范围;获取所述地址范围内的调用指令;将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现以下步骤:获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。一种计算机存储介质,所述计算机存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现以下步骤:获取内核加载的内存的地址范围;获取所述地址范围内的调用指令;将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。由于上述方法、装置、计算机设备及存储介质,无需通过硬编码形式的指令序列的严格搜索对比,便可以确定内核配置信息操作对应的操作实现函数的地址,因此其兼容性有所提高。附图说明图1为一实施方式的操作实现函数地址获取、内核配置信息操作内核配置信息操作方法及装置的执行终端的内部结构示意图本文档来自技高网
...
函数地址获取及应用其的方法、装置、设备及存储介质

【技术保护点】
一种操作实现函数地址获取方法,其特征在于,包括:获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。

【技术特征摘要】
1.一种操作实现函数地址获取方法,其特征在于,包括:获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。2.根据权利要求1所述的操作实现函数地址获取方法,其特征在于,所述根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址的步骤,包括:当所述返回地址对应的指令的前一条指令为调用指令时,根据所述调用指令确定所述内核配置信息操作对应的操作实现函数的地址。3.根据权利要求2所述的操作实现函数地址获取方法,其特征在于,所述根据所述调用指令确定所述内核配置信息操作对应的操作实现函数的地址的步骤之前,还包括:验证所述返回地址是否处于内核加载的内存的地址范围。4.根据权利要求2所述的操作实现函数地址获取方法,其特征在于,所述根据所述调用指令确定所述内核配置信息操作对应的操作实现函数的地址的步骤,包括:将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。5.根据权利要求1所述的操作实现函数地址获取方法,其特征在于,所述根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址的步骤,包括:获取所述返回地址对应的指令的前一条指令所对应的函数;将获取的函数与所述操作实现函数进行特征匹配,并将匹配成功的函数的地址确定为所述操作实现函数的地址。6.一种操作实现函数地址获取方法,其特征在于,包括:获取内核加载的内存的地址范围;获取所述地址范围内的调用指令;将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。7.一种内核配置信息操作方法,其特征在于,包括:获取根据权利要求1-6任意一项所述的操作实现函数地址获取方法,获得的内核配置信息操作对应的操作实现函数的地址;接收操作请求;根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数。8.根据权利要求7所述的内核配置信息操作方法,其特征在于,所述根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数的步骤之前,包括:获取操作对象内存偏移函数的函数地址;根据所述操作请求获取所述操作请求对应的内核操作对象;获取所述内核操作对象的地址信息,并根据所述函数地址校验所述地址信息的合法性。9.根据权利要求8所述的内核配置信息操作方法,其特征在于,所述获取操作对象内存偏移函数的函数地址的方式包括:通过遍历内核配置信息的文件结构或加载内核配置信息的函数地址映射文件获取操作对象内存偏移函数的函数地址。10.根据权利要求8所述的内核配置信息操作方法,其特征在于,所述根据所述函数地址验证所述地址信息的合法性的步骤,包括:当所述地址信息与所述函数地址一致时,所述地址信息合法;当所述地址信息与所述函数地址不一致时,所述地址信息不合法,将所述地址信息更新为所述函数地址。11.根据权利要求7所述的内核配置信息操作方法,其特征在于,所述根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数的步骤之前,包...

【专利技术属性】
技术研发人员:屈亚鑫崔精兵毕磊于涛杨姣玉陈珊珊罗纲
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1