本申请涉及计算机,具体涉及一种钩子函数的生成方法、装置、电子设备及存储介质。
背景技术:
1、现在已经出现了能够通过创建模板,将hook(钩子)函数的代码编写进行统一化和标准化,生成安全性高的钩子函数,这无疑大大提高了工作效率。
2、然而,如果业务需求是需要在hook到某一类函数之后,需要大范围的对各个函数的返回值或者参数进行筛选、修改时,那么,简单的hook模板就很难实现需求,则无法在大量的函数调用中获取想要的内容。
技术实现思路
1、本申请的目的是提供一种钩子函数的生成方法、装置、电子设备及存储介质,能够使钩子函数在大量的函数调用中获取想要的内容。
2、第一方面,本申请实施例提供了 一种钩子函数的生成方法,包括:
3、确定需要被hook的目标函数的匹配类型;
4、根据所述匹配类型从预设的正则匹配模板库中确定目标正则表达式;
5、基于预设的钩子函数模板库以及所述目标正则表达式,生成具有所述目标正则表达式的钩子函数。
6、一种可能的实现方式中,所述确定需要被hook的目标函数的匹配类型,包括:
7、接收用户请求;
8、确定所述用户请求中携带有需要被hook的目标函数的匹配类型。
9、一种可能的实现方式中,所述确定需要被hook的目标函数的匹配类型之前,所述方法还包括:
10、收集用户不同需求对应的正则表达式,以构建正则匹配模板库。
11、一种可能的实现方式中,所述匹配类型包括参数类型和/或返回值类型。
12、第二方面,本申请实施例提供了 一种钩子函数的生成装置,包括:
13、确定模块,用于确定需要被hook的目标函数的匹配类型;
14、匹配模块,用于根据所述匹配类型从预设的正则匹配模板库中确定目标正则表达式;
15、生成模块,用于基于预设的钩子函数模板库以及所述目标正则表达式,生成具有所述目标正则表达式的钩子函数。
16、一种可能的实现方式中,所述确定模块,具体用于:
17、接收用户请求;
18、确定所述用户请求中携带有需要被hook的目标函数的匹配类型。
19、一种可能的实现方式中,所述装置还包括:
20、构建模块,用于在所述确定模块确定需要被hook的目标函数的匹配类型之前,收集用户不同需求对应的正则表达式,以构建正则匹配模板库。
21、一种可能的实现方式中,所述匹配类型包括参数类型和/或返回值类型。
22、第三方面,本申请提供了一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行以实现如第一方面所述的方法。
23、第四方面,本申请实提供了一种计算机可读存储介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如第一方面所述的方法。
24、相较于现有技术,本申请提供的钩子函数的生成方法,通过确定需要被hook的目标函数的匹配类型;根据所述匹配类型从预设的正则匹配模板库中确定目标正则表达式;基于预设的钩子函数模板库以及所述目标正则表达式,生成具有所述目标正则表达式的钩子函数。可见,本申请能够生成具有正则匹配功能的钩子函数,与现有技术相比,本申请生成的钩子函数能够在大量的函数调用中获取想要的内容。
1.一种钩子函数的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述确定需要被hook的目标函数的匹配类型,包括:
3.根据权利要求1所述的方法,其特征在于,所述确定需要被hook的目标函数的匹配类型之前,所述方法还包括:
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述匹配类型包括参数类型和/或返回值类型。
5.一种钩子函数的生成装置,其特征在于,包括:
6.根据权利要求5所述的装置,其特征在于,所述确定模块,具体用于:
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:
8.根据权利要求5至7中任一项所述的装置,其特征在于,所述匹配类型包括参数类型和/或返回值类型。
9.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时以实现如权利要求1至4任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1至4任一项所述的方法。