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系列的注册表参数有效性验证及资源准备函数)。参数有效性验证及资源准备函数需要调用对应的操作实现函数来完成最终的操作,但是操 ...
【技术保护点】
一种操作实现函数地址获取方法,其特征在于,包括:获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。
【技术特征摘要】
1.一种操作实现函数地址获取方法,其特征在于,包括:获取内核配置信息操作对应的栈内存的起始地址;根据所述起始地址在所述栈内存中搜索与内核函数的预设参数相对应的内存单元;获取所述预设参数与返回地址的相对偏移,并根据所述相对偏移及所述内存单元的地址确定所述返回地址的存储位置;根据所述存储位置确定所述返回地址,并根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址。2.根据权利要求1所述的操作实现函数地址获取方法,其特征在于,所述根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址的步骤,包括:当所述返回地址对应的指令的前一条指令为调用指令时,根据所述调用指令确定所述内核配置信息操作对应的操作实现函数的地址。3.根据权利要求2所述的操作实现函数地址获取方法,其特征在于,所述根据所述调用指令确定所述内核配置信息操作对应的操作实现函数的地址的步骤之前,还包括:验证所述返回地址是否处于内核加载的内存的地址范围。4.根据权利要求2所述的操作实现函数地址获取方法,其特征在于,所述根据所述调用指令确定所述内核配置信息操作对应的操作实现函数的地址的步骤,包括:将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。5.根据权利要求1所述的操作实现函数地址获取方法,其特征在于,所述根据所述返回地址对应的指令的前一条指令,确定所述内核配置信息操作对应的操作实现函数的地址的步骤,包括:获取所述返回地址对应的指令的前一条指令所对应的函数;将获取的函数与所述操作实现函数进行特征匹配,并将匹配成功的函数的地址确定为所述操作实现函数的地址。6.一种操作实现函数地址获取方法,其特征在于,包括:获取内核加载的内存的地址范围;获取所述地址范围内的调用指令;将所述调用指令调用的函数的地址确定为候选函数的地址,根据所述候选函数的地址获取所述候选函数;将所述候选函数与所述内核配置信息操作对应的操作实现函数进行特征匹配,并将匹配成功的所述候选函数的地址确定为所述操作实现函数的地址。7.一种内核配置信息操作方法,其特征在于,包括:获取根据权利要求1-6任意一项所述的操作实现函数地址获取方法,获得的内核配置信息操作对应的操作实现函数的地址;接收操作请求;根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数。8.根据权利要求7所述的内核配置信息操作方法,其特征在于,所述根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数的步骤之前,包括:获取操作对象内存偏移函数的函数地址;根据所述操作请求获取所述操作请求对应的内核操作对象;获取所述内核操作对象的地址信息,并根据所述函数地址校验所述地址信息的合法性。9.根据权利要求8所述的内核配置信息操作方法,其特征在于,所述获取操作对象内存偏移函数的函数地址的方式包括:通过遍历内核配置信息的文件结构或加载内核配置信息的函数地址映射文件获取操作对象内存偏移函数的函数地址。10.根据权利要求8所述的内核配置信息操作方法,其特征在于,所述根据所述函数地址验证所述地址信息的合法性的步骤,包括:当所述地址信息与所述函数地址一致时,所述地址信息合法;当所述地址信息与所述函数地址不一致时,所述地址信息不合法,将所述地址信息更新为所述函数地址。11.根据权利要求7所述的内核配置信息操作方法,其特征在于,所述根据所述操作实现函数的地址,调用所述操作请求对应的操作实现函数的步骤之前,包...
【专利技术属性】
技术研发人员:屈亚鑫,崔精兵,毕磊,于涛,杨姣玉,陈珊珊,罗纲,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。