[发明专利]检测堆栈中返回地址被篡改的方法及装置在审
申请号: | 201811108301.0 | 申请日: | 2018-09-21 |
公开(公告)号: | CN109508537A | 公开(公告)日: | 2019-03-22 |
发明(设计)人: | 陈李维;李锦峰;史岗;孟丹 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;吴欢燕 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 返回地址 堆栈 篡改 设计复杂度 链式结构 性能损耗 种检测 加密 存储 验证 检测 | ||
1.一种检测堆栈中返回地址被篡改的方法,其特征在于,包括:
S1,根据堆栈中栈顶帧中所存储的待验证返回地址和待验证返回地址所对应的加密值,基于任一加密值生成算法,获得待验证加密值;
其中,所述堆栈中的第i帧中存储了第i个返回地址和一个随机数;所述堆栈中第i+1帧至栈顶帧中的任一帧中存储了所述任一帧所对应的返回地址和返回地址所对应的加密值;其中,返回地址所对应的加密值根据栈中所述任一帧的前一帧中存储的返回地址和返回地址所对应的加密值,基于所述任一加密值生成算法,获得的加密值;j>i≥1,其中j为栈顶帧的序号;
S2,若待验证加密值与预先生成的正确加密值不同,则确认待验证返回地址被篡改;其中,所述正确加密值预先根据栈中栈顶帧的未被篡改的返回地址和未被篡改的返回地址所对应的加密值,基于所述任一加密值生成算法获得的。
2.根据权利要求1所述的方法,其特征在于,用于执行所述检测堆栈中返回地址被篡改的方法的处理器中,还包括一个Top寄存器,所述Top寄存器用于存储所述正确加密值,且Top寄存器中所存储的正确加密值只能通过预设指令修改。
3.根据权利要求2所述的方法,其特征在于,用于执行所述检测堆栈中返回地址被篡改的方法的处理器中,还包括一个用于执行所述任一加密值生成算法的加密计算模块。
4.根据权利要求1所述的方法,其特征在于,所述堆栈中任一返回地址,和与所述任一返回地址所对应的加密值分别单独保存在所述堆栈中同一栈帧内的不同位置上。
5.根据权利要求1所述的方法,其特征在于,S2还包括:
若待验证加密值与预先生成的正确加密值相同,则确认待验证返回地址没有被篡改。
6.一种检测堆栈中返回地址被篡改的装置,其特征在于,包括:
加密值计算模块,用于根据堆栈中栈顶帧中所存储的待验证返回地址和待验证返回地址所对应的加密值,基于任一加密值生成算法,获得待验证加密值;
其中,所述堆栈中的第i帧中存储了第i个返回地址和一个随机数;所述堆栈中第i+1帧至栈顶帧中的任一帧中存储了所述任一帧所对应的返回地址和返回地址所对应的加密值;其中,返回地址所对应的加密值根据栈中所述任一帧的前一帧中存储的返回地址和返回地址所对应的加密值,基于所述任一加密值生成算法,获得的加密值;j>i≥1,其中j为栈顶帧的序号;
验证模块,用于判断若待验证加密值与预先生成的正确加密值不同,则确认待验证返回地址被篡改;其中,所述正确加密值预先根据栈中栈顶帧的未被篡改的返回地址和未被篡改的返回地址所对应的加密值,基于所述任一加密值生成算法获得的。
7.根据权利要求6所述的装置,其特征在于,还包括一个Top寄存器,所述Top寄存器用于存储所述正确加密值,且Top寄存器中所存储的正确加密值只能通过预设指令修改。
8.根据权利要求7所述的装置,其特征在于,还包括一个用于执行所述任一加密值生成算法的加密计算模块。
9.根据权利要求1所述的装置,其特征在于,所述堆栈中任一返回地址,和与所述任一返回地址所对应的加密值分别单独保存在所述堆栈中同一栈帧内的不同位置上。
10.根据权利要求1所述的装置,其特征在于,所述验证模块还用于判断若待验证加密值与预先生成的正确加密值相同,则确认待验证返回地址没有被篡改。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811108301.0/1.html,转载请声明来源钻瓜专利网。