CN106919366B - 实现堆栈自适应保护的处理器 - Google Patents
实现堆栈自适应保护的处理器 Download PDFInfo
- Publication number
- CN106919366B CN106919366B CN201710081524.1A CN201710081524A CN106919366B CN 106919366 B CN106919366 B CN 106919366B CN 201710081524 A CN201710081524 A CN 201710081524A CN 106919366 B CN106919366 B CN 106919366B
- Authority
- CN
- China
- Prior art keywords
- storehouse
- stack area
- user
- border
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 19
- 238000012544 monitoring process Methods 0.000 claims description 33
- 230000002159 abnormal effect Effects 0.000 claims description 6
- 230000001960 triggered effect Effects 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012550 audit Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种实现堆栈自适应保护的处理器,所述处理器包括指令获取单元、指令译码单元、地址加法器、超级用户堆栈指针寄存器、普通用户堆栈指针寄存器、堆栈上边界寄存器、堆栈下边界寄存器和堆栈保护单元,所述处理器能够访问的内存空间包括指令区、专属内存区域、普通用户堆栈区和超级用户堆栈区。本发明能够在保证现有程序空间以及程序执行效率不变的前提下,提供一种通过硬件实现堆栈自适应保护的处理器。
Description
技术领域
本发明涉及处理器技术领域,尤其涉及一种实现堆栈自适应保护的处理器。
背景技术
随着移动支付等技术的快速普及,处理器的安全问题越来越重要。堆栈作为内存中用于存放处理器数据的空间,其中往往包含大量敏感数据,如果这些敏感数据被破坏,则会造成程序运行失败或者敏感数据泄露等严重问题。
另外,由于堆栈空间往往与指令空间使用同一片地址空间,因此,若堆栈结构被破坏,在堆栈结构中存放的数据被损坏的同时,很有可能指令信息也会被恶意篡改。常见的对处理器攻击手段中,缓冲区溢出攻击就是通过向缓冲区(例如堆栈)内不断填充非法数据,直到数据容量超出了该缓冲区容量,从而将非法溢出覆盖到与堆栈空间相邻空间上,从而达到使处理器使用该攻击者指定的指令以及数据,达到破坏原有程序正常功能或者窃取敏感数据等目的。
针对上述安全攻击,通常的做法是通过软件对堆栈进行保护,即在执行相关堆栈操作时,事先通过额外的指令对该堆栈操作内存访问指令的地址合法性进行检查,确保堆栈操作符合预期。
在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:
现有的基于软件的堆栈保护方式不仅会显著增加程序的代码空间,从而影响程序的执行效率。为了规避上述缺点,现有很多应用程序均默认数据长度与事先分配的堆栈空间相匹配,但是这样的做法又会大大降低整个系统的安全性。
发明内容
本发明提供的一种实现堆栈自适应保护的处理器,能够在保证现有程序空间以及程序执行效率不变的前提下,提供一种通过硬件实现堆栈自适应保护的处理器。
本发明提供一种实现堆栈自适应保护的处理器,所述处理器包括指令获取单元、指令译码单元、地址加法器、超级用户堆栈指针寄存器、普通用户堆栈指针寄存器、堆栈上边界寄存器、堆栈下边界寄存器和堆栈保护单元,所述处理器能够访问的内存空间包括指令区、专属内存区域、普通用户堆栈区和超级用户堆栈区;
所述指令获取单元,用于从所述指令区中获取所述堆栈读写指令,并发送所述堆栈读写指令至所述指令译码单元;
所述指令译码单元,用于对所述堆栈读写指令进行译码以得到所述内存访问偏移量,并发送所述内存访问偏移量至所述地址加法器;
所述超级用户堆栈指针寄存器,用于当所述处理器处于超级用户模式时,发送所述超级用户堆栈区的基地址至所述地址加法器;
所述普通用户堆栈指针寄存器,用于当所述处理器处于普通用户模式时,发送所述普通用户堆栈区的基地址至所述地址加法器;
所述地址加法器,用于根据所述内存访问偏移量和所述超级用户堆栈区的基地址生成所述超级用户堆栈区的访问地址,或者,根据所述内存访问偏移量和所述普通用户堆栈区的基地址生成所述普通用户堆栈区的访问地址;
所述堆栈上边界寄存器,用于从所述专属内存区域读取并写入普通用户堆栈区的上边界值或者超级用户堆栈区的上边界值;
所述堆栈下边界寄存器,用于从所述专属内存区域读取并写入普通用户堆栈区的下边界值或者超级用户堆栈区的下边界值;
所述堆栈保护单元,用于实时监测对应堆栈区的访问地址是否发生堆栈越界,并在监测到发生堆栈越界时触发堆栈越界报错。
可选地,所述堆栈上边界寄存器,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,将所述堆栈上边界寄存器中的超级用户堆栈区的上边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入普通用户堆栈区的上边界值;或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,将所述堆栈上边界寄存器中的普通用户堆栈区的上边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入所述超级用户堆栈区的上边界值。
可选地,所述堆栈下边界寄存器,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,将所述堆栈下边界寄存器中的超级用户堆栈区的下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入普通用户堆栈区的下边界值;或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,将所述堆栈下边界寄存器中的普通用户堆栈区的下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入所述超级用户堆栈区的下边界值。
可选地,所述堆栈保护单元,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,清除超级用户模式的堆栈越界使能位,开启普通用户模式的堆栈越界使能位,实时监测普通用户堆栈区的访问地址是否超出普通用户堆栈区的边界值,并当普通用户堆栈区的访问地址超出普通用户堆栈区的边界值时触发堆栈越界报错;
或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,清除普通用户模式的堆栈越界使能位,开启超级用户模式的堆栈越界使能位,实时监测超级用户堆栈区的访问地址是否超出超级用户堆栈区的边界值,并当超级用户堆栈区的访问地址超出超级用户堆栈区的边界值时触发堆栈越界报错。
可选地,所述堆栈保护单元,还用于设置所述普通用户堆栈区的边界值和所述超级用户堆栈区的边界值,将所述普通用户堆栈区的边界值和所述超级用户堆栈区的边界值存储至所述专属内存区域。
可选地,所述堆栈保护单元进行堆栈越界监测所针对的堆栈读写指令为所有类型的堆栈读写指令或者部分特定类型的堆栈读写指令。
可选地,所述堆栈上边界寄存器和所述堆栈下边界寄存器均为通用寄存器或者控制寄存器。
可选地,所述堆栈保护单元,用于在监测到发生堆栈越界时通过触发异常的方式进行堆栈越界报错。
可选地,所述堆栈保护单元,用于在监测到发生堆栈越界时通过触发处理器跳转到特定的堆栈越界处理程序的方式进行堆栈越界报错。
本发明实施例提供的实现堆栈自适应保护的处理器,所述处理器包括指令获取单元、指令译码单元、地址加法器、超级用户堆栈指针寄存器、普通用户堆栈指针寄存器、堆栈上边界寄存器、堆栈下边界寄存器和堆栈保护单元,所述处理器能够访问的内存空间包括指令区、专属内存区域、普通用户堆栈区和超级用户堆栈区。与现有技术相比,本发明能够在保证现有程序空间以及程序执行效率不变的前提下,提供一种通过硬件实现堆栈自适应保护的处理器。
附图说明
图1为本发明一实施例实现堆栈自适应保护的处理器的结构示意图;
图2为本发明的实现堆栈自适应保护的处理器进行堆栈自适应保护的工作机制示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种实现堆栈自适应保护的处理器,如图1所示,所述处理器包括指令获取单元11、指令译码单元12、地址加法器13、超级用户堆栈指针寄存器14、普通用户堆栈指针寄存器15、堆栈上边界寄存器16、堆栈下边界寄存器17和堆栈保护单元18,所述处理器能够访问的内存空间包括指令区、专属内存区域、普通用户堆栈区和超级用户堆栈区;
所述指令获取单元11,用于从所述指令区中获取所述堆栈读写指令,并发送所述堆栈读写指令至所述指令译码单元12;
所述指令译码单元12,用于对所述堆栈读写指令进行译码以得到所述内存访问偏移量,并发送所述内存访问偏移量至所述地址加法器13;
所述超级用户堆栈指针寄存器14,用于当所述处理器处于超级用户模式时,发送所述超级用户堆栈区的基地址至所述地址加法器13;
所述普通用户堆栈指针寄存器15,用于当所述处理器处于普通用户模式时,发送所述普通用户堆栈区的基地址至所述地址加法器13;
所述地址加法器13,用于根据所述内存访问偏移量和所述超级用户堆栈区的基地址生成所述超级用户堆栈区的访问地址,或者,根据所述内存访问偏移量和所述普通用户堆栈区的基地址生成所述普通用户堆栈区的访问地址;
所述堆栈上边界寄存器16,用于从所述专属内存区域读取并写入普通用户堆栈区的上边界值或者超级用户堆栈区的上边界值;
所述堆栈下边界寄存器17,用于从所述专属内存区域读取并写入普通用户堆栈区的下边界值或者超级用户堆栈区的下边界值;
所述堆栈保护单元18,用于实时监测对应堆栈区的访问地址是否发生堆栈越界,并在监测到发生堆栈越界时触发堆栈越界报错。
具体地,如图1中实线箭头所示,所述处理器处于普通用户模式,此时,所述堆栈保护单元18,用于实时监测普通用户堆栈区的访问地址是否发生堆栈越界,并在监测到发生堆栈越界时触发堆栈越界报错。
同样地,如图1中的虚心箭头所示,当所述处理器处于超级用户模式时,所述堆栈保护单元18,用于实时监测超级用户堆栈区的访问地址是否发生堆栈越界,并在监测到发生堆栈越界时触发堆栈越界报错。
本发明实施例提供的实现堆栈自适应保护的处理器,所述处理器包括指令获取单元、指令译码单元、地址加法器、超级用户堆栈指针寄存器、普通用户堆栈指针寄存器、堆栈上边界寄存器、堆栈下边界寄存器和堆栈保护单元,所述处理器能够访问的内存空间包括指令区、专属内存区域、普通用户堆栈区和超级用户堆栈区。与现有技术相比,本发明能够在保证现有程序空间以及程序执行效率不变的前提下,提供一种通过硬件实现堆栈自适应保护的处理器。
可选地,所述堆栈上边界寄存器16,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,将所述堆栈上边界寄存器中的超级用户堆栈区的上边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入普通用户堆栈区的上边界值;或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,将所述堆栈上边界寄存器中的普通用户堆栈区的上边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入所述超级用户堆栈区的上边界值。
可选地,所述堆栈下边界寄存器17,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,将所述堆栈下边界寄存器中的超级用户堆栈区的下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入普通用户堆栈区的下边界值;或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,将所述堆栈下边界寄存器中的普通用户堆栈区的下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入所述超级用户堆栈区的下边界值。
可选地,所述堆栈保护单元18,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,清除超级用户模式的堆栈越界使能位,开启普通用户模式的堆栈越界使能位,实时监测普通用户堆栈区的访问地址是否超出普通用户堆栈区的边界值,并当普通用户堆栈区的访问地址超出普通用户堆栈区的边界值时触发堆栈越界报错;
或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,清除普通用户模式的堆栈越界使能位,开启超级用户模式的堆栈越界使能位,实时监测超级用户堆栈区的访问地址是否超出超级用户堆栈区的边界值,并当超级用户堆栈区的访问地址超出超级用户堆栈区的边界值时触发堆栈越界报错。
进一步地,所述堆栈保护单元18,还用于设置所述普通用户堆栈区的边界值和所述超级用户堆栈区的边界值,将所述普通用户堆栈区的边界值和所述超级用户堆栈区的边界值存储至所述专属内存区域。
可选地,所述堆栈保护单元18进行堆栈越界监测所针对的堆栈读写指令为所有类型的堆栈读写指令或者部分特定类型的堆栈读写指令。
可选地,所述堆栈上边界寄存器16和所述堆栈下边界寄存器17均为通用寄存器或者控制寄存器。
可选地,所述堆栈保护单元18,用于在监测到发生堆栈越界时通过触发异常的方式进行堆栈越界报错。
具体地,堆栈保护单元监测到堆栈越界后,通过触发异常的方式进行报错。若处理器中异常被使能,正常触发与该堆栈越界相对应的异常;若处理器中异常未被使能,则触发不可恢复异常,指示该堆栈越界情况。
可选地,所述堆栈保护单元18,用于在监测到发生堆栈越界时通过触发处理器跳转到特定的堆栈越界处理程序的方式进行堆栈越界报错。
具体地,堆栈保护单元监测到堆栈越界后,也可以通过触发处理器跳转到特定的堆栈越界处理程序进行报错。在监测到堆栈越界后,不论处理器中异常是否使能,均通过子程序调用的方式跳转到对应堆栈越界处理程序,同时将返回地址保存到链接寄存器中,在该越界处理程序执行完毕后,处理器通过跳转指令跳转到该链接寄存器的方式,返回触发该堆栈越界的内存访问指令的下一跳指令继续执行。
如图2所示,为本发明的实现堆栈自适应保护的处理器进行堆栈自适应保护的工作机制示意图,具体描述了处理器在普通用户模式与超级用户模式之间切换时堆栈保护单元是如何工作的,具体的工作机制如下:
1)处理器在A点开始一个程序任务。
此时,处理器处于普通用户模式,处理器先从所述专属内存区域读取并写入普通用户堆栈区的上边界值和下边界值至堆栈上边界寄存器以及堆栈下边界寄存器中,随后,处理器开启普通用户模式的堆栈越界使能位。
此后,如果处理器执行堆栈读写指令,则该堆栈读写指令以普通用户堆栈指针寄存器为基地址,对普通用户堆栈区进行访问。同时堆栈保护单元根据堆栈上边界寄存器和下边界寄存器中设置的边界值,对普通用户堆栈区进行保护,当监测到堆栈越界时触发报错。
2)处理器运行到B点响应中断,中断需要进入超级用户模式进行处理。
3)处理器运行到C点,即处理器切换到超级用户模式。
此时,处理器清除普通用户模式的越界检查使能位,处理器先将所述堆栈下边界寄存器中的普通用户堆栈区的上边界值和下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入超级用户堆栈区的上边界值和下边界值至堆栈上边界寄存器和堆栈下边界寄存器中,随后,处理器开启超级用户模式的堆栈越界使能位。
此后,如果处理器执行堆栈读写指令,则该堆栈读写指令以超级用户堆栈指针寄存器为基地址,对超级用户堆栈区进行访问。同时堆栈保护单元根据堆栈上边界寄存器和下边界寄存器中设置的边界值,对超级用户堆栈区进行保护,当监测到堆栈越界时触发报错。
4)处理器在D点对中断进行处理,处理完毕后运行到E点。
此时,处理器清楚超级用户模式的堆栈越界检查使能位,处理器将所述堆栈下边界寄存器中的超级用户堆栈区的上边界值和下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入普通用户堆栈区的上边界值和下边界值至堆栈上边界寄存器和堆栈下边界寄存器中,随后,处理器开启普通用户模式的堆栈越界使能位,处理器执行中断返回指令,从超级用户模式返回到普通用户模式。
5)当处理器处理完中断后返回F点,该F点处的指令为处理器响应中断的B点处指令的后续指令,此时如果处理器执行堆栈读写指令,则该指令以普通用户堆栈指针寄存器为基地址,对普通用户堆栈区进行访问。同时堆栈保护单元根据堆栈上边界寄存器和下边界寄存器中设置的边界值,对普通用户堆栈区进行保护,当监测到堆栈越界时触发报错。
6)处理器运行到G点,完成A点处开始的程序任务。整个程序运行过程中,A、B、F、G均为普通用户模式,用于完成普通的程序任务;C、D、E均为超级用户模式,用于完成中断对应的程序任务,其中点C和E用于进行堆栈边界信息的保存和加载,这两点运行过程中,会发生堆栈指针寄存器与堆栈边界寄存器中的堆栈上下边界值分别属于不同模式的情况,为了保证程序正常运行,处理器在C和E点起始处均通过软件控制清除堆栈越界检查使能位,关闭堆栈越界检查功能。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (8)
1.一种实现堆栈自适应保护的处理器,其特征在于,所述处理器包括指令获取单元、指令译码单元、地址加法器、超级用户堆栈指针寄存器、普通用户堆栈指针寄存器、堆栈上边界寄存器、堆栈下边界寄存器和堆栈保护单元,所述处理器能够访问的内存空间包括指令区、专属内存区域、普通用户堆栈区和超级用户堆栈区;
所述指令获取单元,用于从所述指令区中获取堆栈读写指令,并发送所述堆栈读写指令至所述指令译码单元;
所述指令译码单元,用于对所述堆栈读写指令进行译码以得到内存访问偏移量,并发送所述内存访问偏移量至所述地址加法器;
所述超级用户堆栈指针寄存器,用于当所述处理器处于超级用户模式时,发送所述超级用户堆栈区的基地址至所述地址加法器;
所述普通用户堆栈指针寄存器,用于当所述处理器处于普通用户模式时,发送所述普通用户堆栈区的基地址至所述地址加法器;
所述地址加法器,用于根据所述内存访问偏移量和所述超级用户堆栈区的基地址生成所述超级用户堆栈区的访问地址,或者,根据所述内存访问偏移量和所述普通用户堆栈区的基地址生成所述普通用户堆栈区的访问地址;
所述堆栈上边界寄存器,用于从所述专属内存区域读取并写入普通用户堆栈区的上边界值或者超级用户堆栈区的上边界值;
所述堆栈下边界寄存器,用于从所述专属内存区域读取并写入普通用户堆栈区的下边界值或者超级用户堆栈区的下边界值;
所述堆栈保护单元,用于实时监测对应堆栈区的访问地址是否发生堆栈越界,并在监测到发生堆栈越界时触发堆栈越界报错;
其中,所述堆栈保护单元,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,清除超级用户模式的堆栈越界使能位,开启普通用户模式的堆栈越界使能位,实时监测普通用户堆栈区的访问地址是否超出普通用户堆栈区的边界值,并当普通用户堆栈区的访问地址超出普通用户堆栈区的边界值时触发堆栈越界报错;或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,清除普通用户模式的堆栈越界使能位,开启超级用户模式的堆栈越界使能位,实时监测超级用户堆栈区的访问地址是否超出超级用户堆栈区的边界值,并当超级用户堆栈区的访问地址超出超级用户堆栈区的边界值时触发堆栈越界报错。
2.根据权利要求1所述的处理器,其特征在于,所述堆栈上边界寄存器,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,将所述堆栈上边界寄存器中的超级用户堆栈区的上边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入普通用户堆栈区的上边界值;或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,将所述堆栈上边界寄存器中的普通用户堆栈区的上边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入所述超级用户堆栈区的上边界值。
3.根据权利要求1所述的处理器,其特征在于,所述堆栈下边界寄存器,用于当监测到所述处理器由超级用户模式切换至普通用户模式时,将所述堆栈下边界寄存器中的超级用户堆栈区的下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入普通用户堆栈区的下边界值;或者,当监测到所述处理器由普通用户模式切换至超级用户模式时,将所述堆栈下边界寄存器中的普通用户堆栈区的下边界值存储至所述专属内存区域,并从所述专属内存区域读取并写入所述超级用户堆栈区的下边界值。
4.根据权利要求1所述的处理器,其特征在于,所述堆栈保护单元,还用于设置所述普通用户堆栈区的边界值和所述超级用户堆栈区的边界值,将所述普通用户堆栈区的边界值和所述超级用户堆栈区的边界值存储至所述专属内存区域。
5.根据权利要求1所述的处理器,其特征在于,所述堆栈保护单元进行堆栈越界监测所针对的堆栈读写指令为所有类型的堆栈读写指令或者部分特定类型的堆栈读写指令。
6.根据权利要求1所述的处理器,其特征在于,所述堆栈上边界寄存器和所述堆栈下边界寄存器均为通用寄存器或者控制寄存器。
7.根据权利要求1所述的处理器,其特征在于,所述堆栈保护单元,用于在监测到发生堆栈越界时通过触发异常的方式进行堆栈越界报错。
8.根据权利要求1所述的处理器,其特征在于,所述堆栈保护单元,用于在监测到发生堆栈越界时通过触发处理器跳转到特定的堆栈越界处理程序的方式进行堆栈越界报错。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710081524.1A CN106919366B (zh) | 2017-02-15 | 2017-02-15 | 实现堆栈自适应保护的处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710081524.1A CN106919366B (zh) | 2017-02-15 | 2017-02-15 | 实现堆栈自适应保护的处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106919366A CN106919366A (zh) | 2017-07-04 |
CN106919366B true CN106919366B (zh) | 2019-06-04 |
Family
ID=59453634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710081524.1A Active CN106919366B (zh) | 2017-02-15 | 2017-02-15 | 实现堆栈自适应保护的处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106919366B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021062798A1 (zh) * | 2019-09-30 | 2021-04-08 | 深圳市汇顶科技股份有限公司 | 栈溢出的检测方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578094B1 (en) * | 2000-03-02 | 2003-06-10 | International Business Machines Corporation | Method for preventing buffer overflow attacks |
CN1564098A (zh) * | 2004-04-09 | 2005-01-12 | 南京大学 | 一种防止缓冲区溢出攻击的动态堆栈内存管理方法 |
CN101226468A (zh) * | 2008-01-30 | 2008-07-23 | 中国科学院计算技术研究所 | 一种risc处理器装置及其有界访存方法 |
CN102141904A (zh) * | 2011-03-31 | 2011-08-03 | 杭州中天微系统有限公司 | 支持中断屏蔽指令的数据处理器 |
CN104461676A (zh) * | 2014-10-27 | 2015-03-25 | 杭州中天微系统有限公司 | 二进制转译堆栈操作加速处理方法及其处理器 |
CN105190572A (zh) * | 2013-06-05 | 2015-12-23 | 英特尔公司 | 用于防止未经授权的堆栈转移的系统和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN202177891U (zh) * | 2010-12-10 | 2012-03-28 | 北京旋极信息技术股份有限公司 | 一种操作嵌入式计算机系统开发工具的装置 |
US8930657B2 (en) * | 2011-07-18 | 2015-01-06 | Infineon Technologies Ag | Method and apparatus for realtime detection of heap memory corruption by buffer overruns |
US9037872B2 (en) * | 2012-12-17 | 2015-05-19 | Advanced Micro Devices, Inc. | Hardware based return pointer encryption |
CN106293885B (zh) * | 2015-05-20 | 2019-06-28 | 联芯科技有限公司 | 任务创建、挂起和恢复方法 |
-
2017
- 2017-02-15 CN CN201710081524.1A patent/CN106919366B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6578094B1 (en) * | 2000-03-02 | 2003-06-10 | International Business Machines Corporation | Method for preventing buffer overflow attacks |
CN1564098A (zh) * | 2004-04-09 | 2005-01-12 | 南京大学 | 一种防止缓冲区溢出攻击的动态堆栈内存管理方法 |
CN101226468A (zh) * | 2008-01-30 | 2008-07-23 | 中国科学院计算技术研究所 | 一种risc处理器装置及其有界访存方法 |
CN102141904A (zh) * | 2011-03-31 | 2011-08-03 | 杭州中天微系统有限公司 | 支持中断屏蔽指令的数据处理器 |
CN105190572A (zh) * | 2013-06-05 | 2015-12-23 | 英特尔公司 | 用于防止未经授权的堆栈转移的系统和方法 |
CN104461676A (zh) * | 2014-10-27 | 2015-03-25 | 杭州中天微系统有限公司 | 二进制转译堆栈操作加速处理方法及其处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN106919366A (zh) | 2017-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210303677A1 (en) | Technologies for object-oriented memory management with extended segmentation | |
JP6209611B2 (ja) | 安全なドメイン及びより安全性の低いドメインを有するデータ処理装置における例外処理 | |
CN104809401B (zh) | 一种操作系统内核完整性保护方法 | |
JP5580857B2 (ja) | 計算機システム内のセキュリティ侵害を識別して防ぐためのシステムと方法 | |
JP6204479B2 (ja) | 安全なドメインとより安全性の低いドメインの間で切り替えるときに安全ではないアクセスから安全なデータ及びプログラム・コードを保護するためのデータ処理装置及び方法 | |
KR102192835B1 (ko) | 데이터 처리장치에서의 소프트웨어 라이브러리들의 보안 보호 | |
JP5847839B2 (ja) | セキュリティサンドボックス | |
EP2812836B1 (en) | Exception handling in a data processing apparatus having a secure domain and a less secure domain | |
US9202071B2 (en) | Exception handling in a data processing apparatus having a secure domain and a less secure domain | |
TWI721996B (zh) | 安全模式狀態下之資料存取追蹤 | |
EP4073634A1 (en) | Domain transition disable configuration parameter | |
CN106919366B (zh) | 实现堆栈自适应保护的处理器 | |
CN114282206A (zh) | 栈溢出检测方法、装置、嵌入式系统和存储介质 | |
JP2006338426A (ja) | 計算機システム | |
JP5069406B2 (ja) | 計算機システム内のセキュリティ侵害を識別して防ぐためのシステムと方法 | |
CN117688552B (zh) | 栈空间防护方法、电子设备、存储介质及计算机程序产品 | |
CN110008726B (zh) | 一种运行时访问控制装置和方法 | |
CN109033842B (zh) | 数据处理器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |