[发明专利]用于硬件流控制的代码指针验证有效
申请号: | 201580055470.0 | 申请日: | 2015-09-24 |
公开(公告)号: | CN106796634B | 公开(公告)日: | 2018-07-20 |
发明(设计)人: | 詹·阿恰尔;阿尔温德·克里希纳斯瓦米;罗伯特·图尔纳 | 申请(专利权)人: | 高通股份有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52 |
代理公司: | 北京律盟知识产权代理有限责任公司 11287 | 代理人: | 杨林勋 |
地址: | 美国加利*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 硬件 控制 代码 指针 验证 | ||
1.一种用于在处理器中强制执行软件程序的流控制的方法,所述方法包括:
分析所述软件程序的程序代码以识别所述程序代码中的多个代码指针;
识别所述多个代码指针中的每一者的地址中的共用位值集合;且对于所述多个代码指针中的每一代码指针:
基于所述代码指针产生验证标记;以及
通过用来自所述验证标记的第一位集合代替所述代码指针中的第二位集合,用所述验证标记来修改所述程序代码中的所述代码指针,以产生带标记的代码指针,所述第二位集合在对应于所述共用位值集合的所述代码指针中被代替。
2.根据权利要求1所述的方法,其中用所述验证标记来修改所述程序代码中的所述代码指针以产生所述带标记的代码指针进一步包括:通过将掩码应用于所述验证标记和所述代码指针来产生所述带标记的代码指针。
3.根据权利要求2所述的方法,其中通过将所述掩码应用于所述验证标记和所述代码指针来产生所述带标记的代码指针进一步包括:
使用所述掩码从所述验证标记选择所述第一位集合;以及
用所述第一位集合来代替所述代码指针的对应于所述第一位集合的所述第二位集合,以产生所述带标记的代码指针。
4.根据权利要求2所述的方法,其进一步包括:基于所述共用位集合来确定所述掩码。
5.根据权利要求1所述的方法,其进一步包括:验证与所述多个代码指针中的一者相关联的所述带标记的代码指针;响应于所述验证标记已经更改而执行错误处置;以及响应于所述验证标记尚未更改而执行与所述代码指针相关联的所述地址处的程序指令。
6.根据权利要求5所述的方法,其中验证所述带标记的代码指针包括:使用掩码从所述带标记的代码指针确定经恢复的代码指针值。
7.根据权利要求6所述的方法,其进一步包括:使用所述掩码从所述带标记的代码指针提取嵌入的验证标记值。
8.根据权利要求7所述的方法,其进一步包括:至少部分地基于所述经恢复的代码指针值和上下文值来产生经恢复的验证标记。
9.根据权利要求8所述的方法,其进一步包括:使用所述掩码从所述经恢复的验证标记提取带掩码的标记值。
10.根据权利要求9所述的方法,其进一步包括:将所述带掩码的标记值与所述嵌入的验证标记值进行比较,以确定所述带标记的代码指针是否已更改。
11.一种用于在处理器中强制执行软件程序的流控制的设备,所述设备包括:
用于分析所述软件程序的程序代码以识别所述程序代码中的多个代码指针的装置;
用于识别所述多个代码指针中的每一者的地址中的共用位值集合的装置;以及对于所述多个代码指针中的每一代码指针:
用于基于所述代码指针产生验证标记的装置;以及
用于用所述验证标记来修改所述程序代码中的所述代码指针以产生带标记的代码指针的装置包括用于用来自所述验证标记的第一位集合代替所述代码指针中的第二位集合的装置,所述第二位集合在对应于所述共用位值集合的所述代码指针中被代替。
12.根据权利要求11所述的设备,其中所述用于用所述验证标记来修改所述程序代码中的所述代码指针以产生所述带标记的代码指针的装置进一步包括:用于通过将掩码应用于所述验证标记和所述代码指针来产生所述带标记的代码指针的装置。
13.根据权利要求12所述的设备,其中所述用于通过将所述掩码应用于所述验证标记和所述代码指针来产生所述带标记的代码指针的装置进一步包括:
用于使用所述掩码从所述验证标记选择所述第一位集合的装置;以及
用于用所述第一位集合来代替所述代码指针的对应于所述第一位集合的所述第二位集合以产生所述带标记的代码指针的装置。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于高通股份有限公司,未经高通股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580055470.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:对存储数据的远程访问控制
- 下一篇:使用飞地认证进行数据验证