本技术涉及软件安全,尤其涉及一种参数保护方法、装置、设备及存储介质。
背景技术:
1、在软件安全技术领域中,涉及到代码函数的处理、调用等相关操作时,为了防止窃听、篡改和中间人攻击等存在安全威胁的情况发生,需要对函数涉及的参数进行保护。
2、基于编译器规定的函数调用约定,在对函数进行调用时,会将涉及到的参数依次保存至寄存器中,上述方式寄存器中的数据容易被截取,无法实现对参数的保护。
3、因此,亟需一种可行的参数保护方法,以避免现有技术中在函数调用时存在的参数泄露等问题。
技术实现思路
1、本技术的多个方面提供一种参数保护方法、装置、设备及存储介质,用以解决现有技术中函数调用时参数存在泄露的问题。
2、第一方面,本技术实施例提供一种参数保护方法,应用于电子设备,所述方法包括:
3、获取函数中涉及的待保护参数信息,所述待保护参数信息包括:待保护参数在所述函数对应的函数签名中的位置;
4、根据所述电子设备的处理器架构对应的函数调用约定和所述待保护参数信息,构造无效参数;
5、根据所述函数调用约定,将所述无效参数载入至所述处理器架构的目标寄存器中,以使所述待保护参数入栈,所述目标寄存器为载入所述函数中涉及的参数的寄存器。
6、在一个或多个实施例中,所述获取所述函数中涉及的待保护参数信息,包括:
7、根据预先存储的配置文件,在所述函数签名中确定出所述待保护参数信息,所述配置文件中标识有待保护参数在所述函数签名中的位置;
8、或,根据预先存储的编译注释,确定出所述待保护参数在所述函数签名中的位置。
9、在一个或多个实施例中,所述根据所述电子设备的处理器架构对应的函数调用约定和所述待保护参数信息,构造无效参数,包括:
10、根据所述函数调用约定,确定用于载入所述函数中涉及的参数的第一目标寄存器;
11、根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量;
12、根据所述无效参数的数量,采用随机算法构造所述无效参数。
13、在一个或多个实施例中,所述根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量,包括:
14、根据所述函数调用约定和所述待保护参数在所述函数签名中的位置,在所述第一目标寄存器中确定出载入所述待保护参数中第一个待保护参数的第二目标寄存器;
15、根据所述第二目标寄存器和所述第二目标寄存器之后的第一目标寄存器的数量和,确定所述无效参数的数量。
16、在一个或多个实施例中,所述根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量,包括:
17、根据所述函数调用约定和所述待保护参数在所述函数签名中的位置,在所述第一目标寄存器中确定出载入所述待保护参数的第三目标寄存器;
18、根据所述第三目标寄存器的数量,确定所述无效参数的数量。
19、在一个或多个实施例中,所述根据所述函数调用约定,将所述无效参数载入至所述处理器架构的目标寄存器中,以使所述待保护参数入栈,包括:
20、将所述无效参数添加至所有参数中所述第一个待保护参数之前,得到第一参数队列;
21、根据所述函数调用约定,对所述第一参数队列中的参数进行载入处理,以使所述待保护参数入栈;
22、其中,所述处理器架构的目标寄存器包括:所述第二目标寄存器和所述第二目标寄存器之后的第一目标寄存器。
23、在一个或多个实施例中,所述根据所述函数调用约定,将所述无效参数载入至所述处理器架构的目标寄存器中,以使所述待保护参数入栈,包括:
24、将所述待保护参数替换为所述无效参数,并根据所述函数调用约定,将所述待保护参数移动至最后一个第一目标寄存器对应的参数位置之后,得到第二参数队列;
25、根据所述函数调用约定,对所述第二参数队列中的参数进行载入处理,以使所述待保护参数入栈;
26、其中,所述处理器架构的目标寄存器包括:所述第三目标寄存器。
27、第二方面,本技术实施例提供一种参数保护装置,应用于电子设备,所述装置包括:
28、获取模块,用于获取函数中涉及的待保护参数信息,所述待保护参数信息包括:待保护参数在所述函数对应的函数签名中的位置;
29、构造模块,用于根据所述电子设备的处理器架构对应的函数调用约定和所述待保护参数信息,构造无效参数;
30、载入模块,用于根据所述函数调用约定,将所述无效参数载入至所述处理器架构的目标寄存器中,以使所述待保护参数入栈,所述目标寄存器为载入所述函数中涉及的参数的寄存器。
31、在一个或多个实施例中,所述获取模块,具体用于:
32、根据预先存储的配置文件,在所述函数签名中确定出所述待保护参数信息,所述配置文件中标识有待保护参数在所述函数签名中的位置;
33、或,根据预先存储的编译注释,确定出所述待保护参数在所述函数签名中的位置。
34、在一个或多个实施例中,所述构造模块,具体用于:
35、根据所述函数调用约定,确定用于载入所述函数中涉及的参数的第一目标寄存器;
36、根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量;
37、根据所述无效参数的数量,采用随机算法构造所述无效参数。
38、在一个或多个实施例中,所述构造模块根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量,具体用于:
39、根据所述函数调用约定和所述待保护参数在所述函数签名中的位置,在所述第一目标寄存器中确定出载入所述待保护参数中第一个待保护参数的第二目标寄存器;
40、根据所述第二目标寄存器和所述第二目标寄存器之后的第一目标寄存器的数量和,确定所述无效参数的数量。
41、在一个或多个实施例中,所述构造模块根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量,具体用于:
42、根据所述函数调用约定和所述待保护参数在所述函数签名中的位置,在所述第一目标寄存器中确定出载入所述待保护参数的第三目标寄存器;
43、根据所述第三目标寄存器的数量,确定所述无效参数的数量。
44、在一个或多个实施例中,所述载入模块,具体用于:
45、将所述无效参数添加至所有参数中所述第一个待保护参数之前,得到第一参数队列;
46、根据所述函数调用约定,对所述第一参数队列中的参数进行载入处理,以使所述待保护参数入栈;
47、其中,所述处理器架构的目标寄存器包括:所述第二目标寄存器和所述第二目标寄存器之后的第一目标寄存器。
48、在一个或多个实施例中,所述载入模块,具体用于:
49、将所述待保护参数替换为所述无效参数,并根据所述函数调用约定,将所述待保护参数移动至最后一个第一目标寄存器对应的参数位置之后,得到第二参数队列;
50、根据所述函数调用约定,对所述第二参数队列中的参数进行载入处理,以使所述待保护参数入栈;
51、其中,所述处理器架构的目标寄存器包括:所述第三目标寄存器。
52、第三方面,本技术实施例提供一种电子设备,包括:存储器和处理器;
53、所述存储器存储计算机执行指令;
54、所述处理器执行所述存储器存储的计算机执行指令,使得所述处理器执行如第一方面中任一项所述的方法。
55、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现如第一方面中任一项所述的方法。
56、第五方面,本技术实施例提供一种计算机程序产品,所述计算机程序产品包括计算机程序;
57、所述计算机程序存储在计算机可读存储介质中,至少一个处理器可以从该计算机可读存储介质中读取该计算机程序,所述至少一个处理器执行所述计算机程序时用于实现如第一方面中任一项所述的方法。
58、本技术实施例提供的参数保护方法、装置、设备及存储介质,该方法通过获取函数中涉及的待保护参数信息,该待保护参数信息包括:待保护参数在函数对应的函数签名中的位置,之后根据电子设备的处理器架构对应的函数调用约定和待保护参数信息,构造无效参数,之后根据函数调用约定,将无效参数载入至处理器架构的目标寄存器中,以使待保护参数入栈。该技术方案中,通过构造无效参数占用待保护参数原先载入的寄存器,以使得待保护参数入栈,从而一定程度上增加攻击者调试跟踪参数的难度,实现对参数的保护。
1.一种参数保护方法,其特征在于,应用于电子设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述获取所述函数中涉及的待保护参数信息,包括:
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述电子设备的处理器架构对应的函数调用约定和所述待保护参数信息,构造无效参数,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量,包括:
5.根据权利要求3所述的方法,其特征在于,所述根据所述函数调用约定、所述待保护参数在所述函数签名中的位置、以及所述第一目标寄存器,确定所述无效参数的数量,包括:
6.根据权利要求4所述的方法,其特征在于,所述根据所述函数调用约定,将所述无效参数载入至所述处理器架构的目标寄存器中,以使所述待保护参数入栈,包括:
7.根据权利要求5所述的方法,其特征在于,所述根据所述函数调用约定,将所述无效参数载入至所述处理器架构的目标寄存器中,以使所述待保护参数入栈,包括:
8.一种参数保护装置,其特征在于,应用于电子设备,所述装置包括:
9.一种电子设备,其特征在于,包括:存储器和处理器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述计算机执行指令被处理器执行时用于实现权利要求1至7任一项所述的方法。
11.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序;