A method of generating control stack includes: one or more function calls and write multiple control information items to the control stack buffer within the processor in response; and the response is full and received another function call to the control stack buffer are the following: the plurality of control information the entries in the external memory external to the processor; and corresponding to the other function calls another control information entry is written to the control stack buffer.
【技术实现步骤摘要】
【国外来华专利技术】经认证的控制堆栈
本专利技术涉及经认证的控制堆栈,且更特定地涉及用于产生控制堆栈的技术。
技术介绍
计算机软件可易受变更所述软件的操作的攻击。举例来说,诸如软件蠕虫或病毒的恶意探索(如此命名是因为其恶意探索软件中的漏洞)可变更现有软件代码、插入新代码,及/或使现有代码的执行次序从原始预期次序变更以诱发并非如所预期的原始代码的部分的操作。在没有关于软件中的可接受入口点的任何管制的情况下,恶意探索可将执行导向到软件中的任何点,从而促进非预期软件执行序列,这是因为整个软件代码可供恶意探索使用。处理器架构通常包含用于数据及控制流程两者的堆栈。堆栈含有跟踪针对通过程序的调用路径中的每一调用的激活记录的堆栈框架。激活记录通常含有由每一函数(本地变量、参数等等)使用的数据以及控制信息(返回地址、堆栈指针等等),所述数据以及控制信息用以在调用及返回期间参考数据及/或维护程序控制流程。具体地说,返回地址在函数调用期间被推送到堆栈上,且被调用函数将含有其本地变量的堆栈框架分配在包含任何本地数据缓冲器的堆栈上。实施故障及未经验证输入可造成程序溢流堆栈上的缓冲器且改写控制数据(例如,返回 ...
【技术保护点】
一种产生控制堆栈的方法,所述方法包括:响应于一或多个函数调用而将多个控制信息条目写入到在处理器内部的控制堆栈缓冲器中;及响应于所述控制堆栈缓冲器已满且接收到另外函数调用而进行以下操作:将所述多个控制信息条目写入到在所述处理器外部的外部存储器;及将对应于所述另外函数调用的另外控制信息条目写入到所述控制堆栈缓冲器。
【技术特征摘要】
【国外来华专利技术】2015.02.02 US 14/612,0671.一种产生控制堆栈的方法,所述方法包括:响应于一或多个函数调用而将多个控制信息条目写入到在处理器内部的控制堆栈缓冲器中;及响应于所述控制堆栈缓冲器已满且接收到另外函数调用而进行以下操作:将所述多个控制信息条目写入到在所述处理器外部的外部存储器;及将对应于所述另外函数调用的另外控制信息条目写入到所述控制堆栈缓冲器。2.根据权利要求1所述的方法,其进一步包括使用所述多个控制信息条目中的至少第一控制信息条目及第二控制信息条目来确定认证标签。3.根据权利要求2所述的方法,其进一步包括将所述认证标签的相应部分与所述第一控制信息条目及所述第二控制信息条目中的每一者相关联地存储到所述外部存储器。4.根据权利要求2所述的方法,其中所述多个控制信息条目包括两个以上控制信息条目,且其中确定所述认证标签包括将函数应用于所述多个控制信息条目中的全部。5.根据权利要求2所述的方法,其进一步包括:使用存储在所述外部存储器中的至少所述第一控制信息条目及所述第二控制信息条目来确定认证验证程序;确定所述认证验证程序匹配于所述认证标签;及基于所述认证验证程序匹配于所述认证标签而将所述第一控制信息条目从所述外部存储器写入到所述控制堆栈缓冲器。6.根据权利要求1所述的方法,其中将所述多个控制信息条目写入到所述外部存储器包括伴随将所述多个控制信息条目安置在所述外部存储器的第一区域中而将所述多个控制信息条目写入到所述外部存储器,所述外部存储器的所述第一区域物理上从存储对应于所述控制信息条目的程序数据的所述外部存储器的第二区域位移。7.根据权利要求6所述的方法,其中将所述多个控制信息条目写入到所述外部存储器包括伴随所述多个控制信息条目的至少主要部分为写入在堆栈框架中的堆栈框架控制信息条目的主要部分的重复而将所述多个控制信息条目写入到所述外部存储器,且其中所述堆栈框架存储在所述外部存储器中且至少在被原始写入时含有对应于所述堆栈框架控制信息条目的程序数据。8.根据权利要求7所述的方法,其进一步包括:确定所述多个控制信息条目的至少所述主要部分匹配于所述堆栈框架控制信息条目的至少所述主要部分;及基于所述多个控制信息条目的至少所述主要部分匹配于所述堆栈框架控制信息条目的至少所述主要部分而将所述多个控制信息条目从所述外部存储器写入到所述控制堆栈缓冲器。9.一种计算系统,其包括:处理器,其含有控制堆栈缓冲器;及外部存储器,其在所述处理器外部且以通信方式耦合到所述处理器;其中所述处理器经配置以进行以下操作:通过将控制信息条目写入到所述控制堆栈缓冲器中而对函数调用作出响应;对控制框架填充所述控制堆栈缓冲器作出响应,所述控制框架包括多个控制信息条目,且通过将所述控制框架写入到所述外部存储器且通过将对应于另外函数调用的另外控制信息条目写入到所述控制堆栈缓冲器而接收所述另外函数调用。10.根据权利要求9所述的系统,其中所述处理器经进一步配置以使用所述多个控制信息条目中的至少第一控制信息条目及第二控制信息条目来确定认证标签。11.根据权利要求10所述的系统,其中所述处理器经进一步配置以将所述认证标签的相应部分与所述第一控制信息条目及所述第二控制信息条目中的每一者相关联地存储到所述外部存储器。12.根据权利要求10所述的系统,其中所述多个控制信息条目包括两个以上控制信息条目,且其中所述处理器经配置以通过将函数应用于所述多个控制信息条目中的全部而确定所述认证标签。13.根据权利要求10所述的系统,其中所述处理器经进一步配置以进行以下操作:使用存储在所述外部存储器中的至少所述第一控制信息条目及所述第二控制信息条目来确定认证验证程序;确定所述认证验证程序匹配于所述认证标签;及基于所述认证验证程序匹配于所述认证标签而将所述第一控制信息条目从所述外部存储器写入到所述控制堆栈缓冲器。14.根据权利要求9所述的系统,其中所述处理器经配置以通过形成分裂式堆栈而将所述控制框架写入到所述外部存储器,其中所述多个控制信息条目安置在所述外部存储器的第一区域中,所述外部存储器的所述第一区域物理上与存储对应于所述控制信息条目的程序数据的所述外部存储器的第二区域分离。15.根据权利要求9所述的系统,其中所述处理器经配置以通过形成影子堆栈而将所述控制框架写入到所述外部存储器,其中所述多个控制信息条目的至少主要部分为写入在堆栈框架中的堆栈框架控制信息条目的主要部分的重复,且其中所述堆栈框架存储在所述外部存储器中且至少在被原始写入时含有对应于所述堆栈框架控制信息条目的程序数据。16.一种计算系统,其包括:用于存储控制堆栈缓冲器的装置;用于存储程序数据及控制数据的装置;用于通过将控制...
【专利技术属性】
技术研发人员:阿尔温德·克里希纳斯瓦米,詹·阿恰尔,罗伯特·图尔纳,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:美国,US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。