System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 函数代码的执行方法、装置、电子设备及存储介质制造方法及图纸_技高网

函数代码的执行方法、装置、电子设备及存储介质制造方法及图纸

技术编号:41180365 阅读:3 留言:0更新日期:2024-05-07 22:14
本申请公开了一种函数代码的执行方法、装置、电子设备及存储介质。其中,该方法包括:在执行目标函数代码之前,将目标函数代码的返回地址保存在寄存器中,其中,返回地址表征在执行目标函数代码的返回操作时所指向回归的地址;在目标函数代码执行完成之后,从寄存器中读取返回地址;依据返回地址执行目标函数代码之后的函数代码。本申请解决了现有技术中通过修改运行中的函数代码的返回地址导致的函数代码在运行过程中存在安全漏洞风险的技术问题。

【技术实现步骤摘要】

本申请涉及信息安全领域、软件开发及其他相关,具体而言,涉及一种函数代码的执行方法、装置、电子设备及存储介质


技术介绍

1、软件程序的发展可以追溯到计算机科学和信息技术的早期发展。其中,随着计算机技术的不断发展和普及,软件程序变得越来越重要,成为现代社会的基础设施之一。在软件高速发展的时代,软件程序的安全性所面临的挑战也愈演愈烈,其中,栈溢出就是一个普遍会遇到的重大问题。

2、其中,栈是一种常见的数据结构,栈具有后进先出的特点,即最后进入栈的元素最先被弹出(即被销毁)。在软件程序的运行中,栈可以用于存储和操作数据,包括局部变量、函数参数、返回值等。而栈溢出是一种常见的软件程序错误,它通常发生在程序试图访问超出其分配的栈空间时。栈溢出可能会导致程序崩溃、死锁、数据损坏甚至是远程任意命令执行等问题,因此需要采取一些技术措施来防止它发生。

3、在现有技术中,软件程序的攻击者可以通过在函数代码运行过程中改写函数代码的返回地址,从而实施栈溢出等信息安全攻击,进而造成软件程序的安全漏洞风险。

4、针对上述的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本申请提供了一种函数代码的执行方法、装置、电子设备及存储介质,以至少解决现有技术中通过修改运行中的函数代码的返回地址导致的函数代码在运行过程中存在安全漏洞风险的技术问题。

2、根据本申请的一个方面,提供了一种函数代码的执行方法,包括:在执行目标函数代码之前,将目标函数代码的返回地址保存在寄存器中,其中,返回地址表征在执行目标函数代码的返回操作时所指向回归的地址;在目标函数代码执行完成之后,从寄存器中读取返回地址;依据返回地址执行目标函数代码之后的函数代码。

3、可选地,函数代码的执行方法还包括:在执行目标函数代码之前,在位于目标函数代码之前的位置上插入第一代码,其中,第一代码用于指向目标函数代码的返回地址的存储路径;在位于目标函数代码之后的位置上插入第二代码,其中,第二代码用于指向目标函数代码的返回地址的转存路径。

4、可选地,函数代码的执行方法还包括:在执行目标函数代码之前,通过运行第一代码将目标函数代码的返回地址存储至寄存器中的目标位置,其中,寄存器中的目标位置用于存放预设字节数的随机值,目标位置表征返回地址的存储路径。

5、可选地,函数代码的执行方法还包括:在目标函数代码执行完成之后,通过运行第二代码将目标函数代码的返回地址从寄存器中读取返回地址,并将返回地址转存至目标寄存器中,其中,目标寄存器用于保存当前正在执行的指令。

6、可选地,函数代码的执行方法还包括:在从寄存器中读取返回地址之后,在禁止运行第一代码和第二代码的情况下,通过运行目标函数代码确定目标函数代码在运行过程中使用的待确认返回地址;检测待确认返回地址与从寄存器中读取的返回地址是否相同;在待确认返回地址与从寄存器中读取的返回地址相同的情况下,确定目标函数代码的返回地址在运行过程中未被篡改;在待确认返回地址与从寄存器中读取的返回地址不相同的情况下,确定目标函数代码的返回地址在运行过程中被篡改。

7、可选地,函数代码的执行方法还包括:在目标函数代码执行之前,在目标函数代码对应的堆栈帧中插入目标数值,其中,目标函数代码对应的堆栈帧用于保存目标函数代码的返回地址和局部变量,目标数值在堆栈帧中的位置位于目标函数代码的返回地址和局部变量之间。

8、可选地,函数代码的执行方法还包括:在目标函数代码对应的堆栈帧中插入目标数值之后,在目标函数代码执行期间,检测堆栈帧中的目标数值是否发生变化;在目标数值发生变化的情况下,确定目标函数代码在运行过程中出现程序错误;在目标数值未发生变化的情况下,确定目标函数代码正常运行。

9、根据本申请的另一方面,还提供了一种函数代码的执行装置,其中,该装置包括:处理单元,用于在执行目标函数代码之前,将目标函数代码的返回地址保存在寄存器中,其中,返回地址表征在执行目标函数代码的返回操作时所指向回归的地址;读取单元,用于在目标函数代码执行完成之后,从寄存器中读取返回地址;执行单元,用于依据返回地址执行目标函数代码之后的函数代码。

10、根据本申请的另一方面,还提供了一种计算机可读存储介质,其中,计算机可读存储介质中存储有计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的函数代码的执行方法。

11、根据本申请的另一方面,还提供了一种电子设备,其中,电子设备包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项的函数代码的执行方法。

12、在本申请中,采用将目标函数代码的返回地址保存在寄存器中的方式,在执行目标函数代码之前,将目标函数代码的返回地址保存在寄存器中,其中,返回地址表征在执行目标函数代码的返回操作时所指向回归的地址。然后,在目标函数代码执行完成之后,从寄存器中读取返回地址,并依据返回地址执行目标函数代码之后的函数代码。

13、由上述内容可知,本申请通过在执行目标函数代码之前,将目标函数代码的返回地址保存在寄存器中,并且在目标函数代码执行完成之后,从寄存器中读取返回地址,从而即便目标函数代码在运行过程中返回地址被篡改,但是由于在目标函数代码运行前,未被篡改的返回地址已经被保存在寄存器中,并且后续的返回地址读取操作也是直接从寄存器中读取未被篡改的返回地址,因此确保了程序能够始终以未被篡改的返回地址执行目标函数代码的相关操作,避免了现有技术中通过修改运行中的函数代码的返回地址导致的函数代码在运行过程中存在安全漏洞风险的问题。

14、由此可见,通过本申请的技术方案,达到了确保函数代码运行期间始终调用未被篡改的返回地址的目的,从而实现了提高函数代码运行安全性的技术效果,进而解决了现有技术中通过修改运行中的函数代码的返回地址导致的函数代码在运行过程中存在安全漏洞风险的技术问题。

本文档来自技高网...

【技术保护点】

1.一种函数代码的执行方法,其特征在于,包括:

2.根据权利要求1所述的函数代码的执行方法,其特征在于,在执行目标函数代码之前,所述函数代码的执行方法还包括:

3.根据权利要求2所述的函数代码的执行方法,其特征在于,在执行目标函数代码之前,将所述目标函数代码的返回地址保存在寄存器中,包括:

4.根据权利要求2所述的函数代码的执行方法,其特征在于,在所述目标函数代码执行完成之后,从所述寄存器中读取所述返回地址,包括:

5.根据权利要求2所述的函数代码的执行方法,其特征在于,在从所述寄存器中读取所述返回地址之后,所述函数代码的执行方法还包括:

6.根据权利要求1所述的函数代码的执行方法,其特征在于,所述函数代码的执行方法还包括:

7.根据权利要求6所述的函数代码的执行方法,其特征在于,在所述目标函数代码对应的堆栈帧中插入目标数值之后,所述函数代码的执行方法还包括:

8.一种函数代码的执行装置,其特征在于,包括:

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的函数代码的执行方法。

10.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至7中任意一项所述的函数代码的执行方法。

...

【技术特征摘要】

1.一种函数代码的执行方法,其特征在于,包括:

2.根据权利要求1所述的函数代码的执行方法,其特征在于,在执行目标函数代码之前,所述函数代码的执行方法还包括:

3.根据权利要求2所述的函数代码的执行方法,其特征在于,在执行目标函数代码之前,将所述目标函数代码的返回地址保存在寄存器中,包括:

4.根据权利要求2所述的函数代码的执行方法,其特征在于,在所述目标函数代码执行完成之后,从所述寄存器中读取所述返回地址,包括:

5.根据权利要求2所述的函数代码的执行方法,其特征在于,在从所述寄存器中读取所述返回地址之后,所述函数代码的执行方法还包括:

6.根据权利要求1所述的函数代码的执行方法,其特征在于,所述函数代码的执行...

【专利技术属性】
技术研发人员:朱志权刘志诚徐俊吴疆王正涵
申请(专利权)人:山石网科通信技术股份有限公司
类型:发明
国别省市:

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

1