[发明专利]程序溢出保护方法及装置在审
申请号: | 201811069937.9 | 申请日: | 2018-09-13 |
公开(公告)号: | CN110895499A | 公开(公告)日: | 2020-03-20 |
发明(设计)人: | 佘三华;余沛 | 申请(专利权)人: | 北京奇虎科技有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14;G06F11/07 |
代理公司: | 北京市浩天知识产权代理事务所(普通合伙) 11276 | 代理人: | 宋菲;刘兰兰 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 溢出 保护 方法 装置 | ||
本发明公开了一种程序溢出保护方法及装置。其中,方法包括:记录为目标程序分配的至少一个内存块中每个内存块对应的内存块信息;获取目标程序中当前执行的指令,确定与当前执行的指令对应的目标内存块基地址以及目标内存块地址;判断记录的内存块信息中是否包含有目标内存块基地址,若是,在记录的内存块信息中获取与目标内存块基地址相关联的内存块容量,并判断当前是否发生程序溢出;若当前发生程序溢出,则记录当前发生的程序溢出所对应的溢出破坏信息,并根据溢出破坏信息进行内存恢复。本方案在检测到发生程序溢出时,可快速地实现对内存的恢复,从而在发生程序溢出时仍可保障程序的正常执行,提高程序的稳定性,进而提升用户体验。
技术领域
本发明涉及计算机安全技术领域,具体涉及一种程序溢出保护方法及装置。
背景技术
随着科技及社会的不断发展,各类应用程序的性能也得以快速提升。然而,目前仍存在许多因素严重威胁着应用程序的正常运行。例如,程序溢出仍是影响程序性能,尤其是影响程序运行稳定性的重要因素之一。
目前,当应用程序发生程序溢出时,通常需由专业技术人员对应用程序的源代码进行解析,排查程序溢出问题,并在排查出程序溢出问题之后,采用人工的方式制定相应的修复策略。然而,该方法在发生程序溢出时,无法实现对程序的快速恢复,并且具有人工成本高,恢复效率低的弊端。从而导致应用程序的长时间异常崩溃,进而降低用户体验;尤其在航天、军事、核工业以及高铁等信息实时性要求较高的领域,将引起较大的经济损失等严重后果。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的程序溢出保护方法及装置。
根据本发明的一个方面,提供了一种程序溢出保护方法,包括:
记录为目标程序分配的至少一个内存块中每个内存块对应的内存块信息;其中,所述内存块信息包括内存块基地址及与所述内存块基地址相关联的内存块容量;
获取目标程序中当前执行的指令,确定与所述当前执行的指令对应的目标内存块基地址以及目标内存块地址;
判断记录的内存块信息中是否包含有所述目标内存块基地址,若是,在记录的内存块信息中获取与目标内存块基地址相关联的内存块容量,并根据目标内存块地址、目标内存块基地址、以及与目标内存块基地址相关联的内存块容量,判断当前是否发生程序溢出;
若当前发生程序溢出,则记录当前发生的程序溢出所对应的溢出破坏信息,并根据所述溢出破坏信息进行内存恢复。
根据本发明的另一方面,提供了一种程序溢出保护装置,包括:
记录模块,适于记录为目标程序分配的至少一个内存块中每个内存块对应的内存块信息;其中,所述内存块信息包括内存块基地址及与所述内存块基地址相关联的内存块容量;
确定模块,适于获取目标程序中当前执行的指令,确定与所述当前执行的指令对应的目标内存块基地址以及目标内存块地址;
地址判断模块,适于判断记录的内存块信息中是否包含有所述目标内存块基地址;
地址获取模块,适于地址判断模块判断结果为是,在记录的内存块信息中获取与目标内存块基地址相关联的内存块容量;
溢出判断模块,适于根据目标内存块地址、目标内存块基地址、以及与目标内存块基地址相关联的内存块容量,判断当前是否发生程序溢出;
内存恢复模块,适于若当前发生程序溢出,则记录当前发生的程序溢出所对应的溢出破坏信息,并根据所述溢出破坏信息进行内存恢复。
根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司,未经北京奇虎科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811069937.9/2.html,转载请声明来源钻瓜专利网。