一种函数接口的调用方法、装置、电子设备及存储介质制造方法及图纸

技术编号:35361472 阅读:10 留言:0更新日期:2022-10-29 17:59
本申请提供一种函数接口的调用方法、装置、电子设备及存储介质,涉及计算机技术领域,方法包括:通过处理进程接收目标程序发送的函数接口调用请求,并对函数接口调用请求携带的目标函数名进行验证;其中,目标函数名是基于目标函数接口的原始函数名加密获得的;若确定目标函数名验证通过,则基于目标函数名和预先配置的第一映射关系,确定目标函数名对应的目标地址索引信息;其中,第一映射关系表征各个函数名和各个地址索引信息之间的对应关系;根据目标地址索引信息,获得目标函数接口对应的原始地址;基于原始地址,对目标函数接口进行调用。本申请可以防止目标程序被恶意窃取信息、攻击破坏等,以提高目标程序的安全性。以提高目标程序的安全性。以提高目标程序的安全性。

【技术实现步骤摘要】
一种函数接口的调用方法、装置、电子设备及存储介质


[0001]本申请涉及计算机
,尤其涉及一种函数接口的调用方法、装置、电子设备及存储介质。

技术介绍

[0002]操作系统(operation system,OS)是管理计算机硬件与软件资源的计算机程序,可以作为应用程序与计算机硬件系统之间的接口,客户端通过操作系统的协助,可以快速、有效、安全、可靠地操纵计算机硬件系统中的各类资源,以处理自身的程序。
[0003]操作系统向编程人员提供了应用程序与操作系统的接口,简称函数接口,应用程序通过调用一系列的系统函数接口,可在执行中访问操作系统中的资源和获取操作系统的服务,它也是应用程序能获取操作系统服务的唯一途径。
[0004]相关技术中,应用程序在调用函数接口时,容易被恶意程序进行钩子处理或劫持,从而被恶意窃取核心信息或者攻击破坏,导致应用程序的安全性低。

技术实现思路

[0005]本申请实施例提供一种函数接口的调用方法、装置、电子设备及存储介质,用于防止目标程序被恶意窃取信息、攻击破坏等,可以提高目标程序的安全性。
[0006]第一方面,本申请实施例提供一种函数接口的调用方法,包括:
[0007]通过处理进程接收目标程序发送的函数接口调用请求,并对所述函数接口调用请求携带的目标函数名进行验证;其中,所述目标函数名是基于目标函数接口的原始函数名加密获得的;
[0008]若确定所述目标函数名验证通过,则基于所述目标函数名和预先配置的第一映射关系,确定所述目标函数名对应的目标地址索引信息;其中,所述第一映射关系表征各个函数名和各个地址索引信息之间的对应关系;
[0009]根据所述目标地址索引信息,获得所述目标函数接口对应的原始地址;
[0010]基于所述原始地址,对所述目标函数接口进行调用。
[0011]第二方面,本申请实施例提供一种函数接口的调用装置,包括:
[0012]函数名验证模块,用于通过处理进程接收目标程序发送的函数接口调用请求,并对所述函数接口调用请求携带的目标函数名进行验证;其中,所述目标函数名是基于目标函数接口的原始函数名加密获得的;
[0013]地址索引确定模块,用于若确定所述目标函数名验证通过,则基于所述目标函数名和预先配置的第一映射关系,确定所述目标函数名对应的目标地址索引信息;其中,所述第一映射关系表征各个函数名和各个地址索引信息之间的对应关系;
[0014]地址获取模块,用于根据所述目标地址索引信息,获得所述目标函数接口对应的原始地址;
[0015]调用模块,用于基于所述原始地址,对所述目标函数接口进行调用。
[0016]在一种可能的实施例中,所述函数接口调用请求中还携带所述目标函数接口所属的目标函数库的目标库名,其中,所述目标库名是基于所述目标函数库的原始库名加密获得的;
[0017]则所述装置还包括库名验证模块,用于:
[0018]对所述目标函数库的目标库名进行验证,并确定所述目标库名验证通过。
[0019]在一种可能的实施例中,所述函数名验证模块,还用于:
[0020]在预先配置的各个函数接口的函数名中,匹配所述目标函数名;其中,所述各个函数接口的函数名,是将所述各个函数接口的原始函数名各自加密获得的;
[0021]若匹配到所述目标函数名,则确定所述目标函数名验证通过。
[0022]在一种可能的实施例中,所述装置还包括定义模块,用于:
[0023]基于所述目标函数名,定义所述目标函数接口的函数原型。
[0024]在一种可能的实施例中,所述装置还包括:
[0025]加载模块,用于通过目标加载进程将所述目标函数接口所属的目标函数库加载至内存,并获取所述目标函数库中的各个函数接口的原始地址;其中,所述目标函数库对应有函数名列表,所述函数名列表中的各个函数接口的函数名,是基于所述各个函数接口的原始函数名加密获得的;
[0026]地址索引配置模块,将所述各个函数接口的原始地址存储后,确定所述各个函数接口的函数名各自对应的地址索引信息;
[0027]第一映射关系配置模块,用于建立所述各个函数接口的函数名,以及所述各个函数接口各自对应的地址索引信息之间的所述第一映射关系,将所述第一映射关系进行存储。
[0028]在一种可能的实施例中,所述地址索引配置模块,还用于:
[0029]采用所述各个函数接口的函数名,分别对所述各个函数接口的原始地址进行加密,得到各个函数接口地址;
[0030]将所述各个函数接口地址存储至地址列表中;
[0031]根据所述各个函数接口地址各自在所述地址列表中的存储位置,确定所述各个函数接口的函数名各自对应的地址索引信息。
[0032]在一种可能的实施例中,所述装置还包括第二映射关系配置模块,用于:
[0033]建立所述各个函数接口地址以及各个解密密钥的所述第二映射关系,将所述第二映射关系进行存储。
[0034]在一种可能的实施例中,所述装置还包括加密模块,用于:
[0035]预先采用第一加密函数,将所述目标函数库的原始库名进行加密,得到所述目标函数库的目标库名;以及
[0036]预先采用第二加密函数,分别将所述目标函数库中的各个函数接口的原始函数名进行加密,得到所述各个函数接口的函数名。
[0037]在一种可能的实施例中,所述第一加密函数和所述第二加密函数均可以采用以下任意一种:
[0038]单哈希函数、双哈希函数、对称加密函数、非对称加密函数。
[0039]在一种可能的实施例中,所述加载模块,还用于:
[0040]获取通过所述目标加载进程加载的所述目标函数库的第一文件信息;其中,所述第一文件信息包括第一文件时间戳以及第一文件校验和;
[0041]获取通过操作系统加载的原始目标函数库的第二文件信息;其中,所述原始目标函数库中保存有所述各个函数接口的原始函数名,所述第二文件信息包括第二文件时间戳以及第二文件校验和;
[0042]若确定所述第一文件信息与所述第二文件信息一致,则通过所述目标加载进程将所述目标函数库存储至内存。
[0043]第三方面,本申请实施例提供一种电子设备,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行第一方面任一所述方法的步骤。
[0044]第四方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行第一方面任一所述方法的步骤。
[0045]由于本申请实施例采用上述技术方案,至少具有如下技术效果:
[0046]在接收到目标程序发送的函数接口调用请求时,首先对函数接口调用请求携带的目标函数名进行验证,该目标函数名是基于目标函数接口的原始函数名加密获得的;如果目标函数名验证通过,则可以根据各个函数名和各个地址索引信息之本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种函数接口的调用方法,其特征在于,包括:通过处理进程接收目标程序发送的函数接口调用请求,并对所述函数接口调用请求携带的目标函数名进行验证;其中,所述目标函数名是基于目标函数接口的原始函数名加密获得的;若确定所述目标函数名验证通过,则基于所述目标函数名和预先配置的第一映射关系,确定所述目标函数名对应的目标地址索引信息;其中,所述第一映射关系表征各个函数名和各个地址索引信息之间的对应关系;根据所述目标地址索引信息,获得所述目标函数接口对应的原始地址;基于所述原始地址,对所述目标函数接口进行调用。2.如权利要求1所述的方法,其特征在于,所述根据所述目标地址索引信息,获得所述目标函数接口对应的原始地址,包括:根据所述目标地址索引信息,从预先配置的地址列表中获得目标函数接口地址;其中,所述目标函数接口地址是对所述目标函数接口的原始地址加密后的地址;基于所述目标函数接口地址和预先配置的第二映射关系,确定所述目标函数接口地址对应的目标解密密钥;其中,所述第二映射关系表征各个函数接口地址和各个解密密钥的对应关系;根据所述目标解密密钥对所述目标函数接口地址进行解密,得到所述目标函数接口的原始地址。3.如权利要求1所述的方法,其特征在于,所述函数接口调用请求中还携带所述目标函数接口所属的目标函数库的目标库名,其中,所述目标库名是基于所述目标函数库的原始库名加密获得的;则所述对所述函数接口调用请求携带的目标函数名进行验证之前,还包括:对所述目标函数库的目标库名进行验证,并确定所述目标库名验证通过。4.如权利要求1至3任一项所述的方法,其特征在于,所述对所述函数接口调用请求携带的目标函数名进行验证,包括:在预先配置的各个函数接口的函数名中,匹配所述目标函数名;其中,所述各个函数接口的函数名,是将所述各个函数接口的原始函数名各自加密获得的;若匹配到所述目标函数名,则确定所述目标函数名验证通过。5.如权利要求1至3任一项所述的方法,其特征在于,若确定所述目标函数名验证通过之后,在所述根据所述目标地址索引信息,获得所述目标函数接口对应的原始地址之前,还包括:基于所述目标函数名,定义所述目标函数接口的函数原型。6.如权利要求1至3任一项所述的方法,其特征在于,所述通过处理进程接收目标程序发送的函数接口调用请求之前,还包括:通过目标加载进程将所述目标函数接口所属的目标函数库加载至内存,并获取所述目标函数库中的各个函数接口的原始地址;其中,所述目标函数库对应有函数名列表,所述函数名列表中的各个函数接口的函数名,是基于所述各个函数接口的原始函数名加密获得的;将所述各个函数接口的原始地址存储后,确定所述各个函数接口的函数名各自对应的
地址索引信息;建立所述各个函数接口的函数名,以及所述各个函数接口各自对应的地址索引信息之间的所述第一映射关系,将所述第一映射关系进行存储。7.如权利要求6所述的方法,其特征在于,所述将所述各个函数接口的原始地址存储后,确定所述各个函数接口的函数名各自对应的地址索引信息,包括:基于所述各个函数接口的函数名,分别获得所述各个函数接口的原始地址加密后的各个函数接口地址;将所述各个函数接口地址存储至地址列表中;根据所述各个...

【专利技术属性】
技术研发人员:尹钻兴蔡晨蒙俊伸黄鑫罗靖
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1