[发明专利]改编和执行计算机程序的方法及其计算机体系结构有效
| 申请号: | 200980119756.5 | 申请日: | 2009-05-12 |
| 公开(公告)号: | CN102047261A | 公开(公告)日: | 2011-05-04 |
| 发明(设计)人: | J·A·崔斯切尔;P·M·H·M·A·格瑞森;W·P·A·J·米歇尔斯 | 申请(专利权)人: | NXP股份有限公司 |
| 主分类号: | G06F21/00 | 分类号: | G06F21/00 |
| 代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 王波波 |
| 地址: | 荷兰艾*** | 国省代码: | 荷兰;NL |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 改编 执行 计算机 程序 方法 及其 计算机体系结构 | ||
1.一种执行计算机程序的方法,
所述计算机程序包括第一个数的基本块,
所述基本块的每一个均包括相应的第二个数的指令。
所述方法包括以下步骤:
在开始执行所述基本块的特定块时(202):
在寄存器(112)中存储(204)起始值;
在执行所述特定基本块中的指令的特定指令时:
根据第一数学函数(208)处理在所述寄存器(112)中当前获得的第一值和所述特定指令的表示,以便得出更新的值;
在所述寄存器(112)中存储(210)所述更新的值;
在执行所述特定基本块中指令的另外的特定指令时,其中所述另外的特定指令包括原始地址:
通过根据第二数学函数(214)处理所述原始地址和在所述寄存器中当前获得的第二值得出修改地址;
使用所述修改地址代替(216)所述原始地址来执行(218)所述另外的特定指令。
2.根据权利要求1所述的方法,其中所述另外的特定指令是跳转或者条件跳转。
3.根据权利要求1所述的方法,其中所述另外的特定指令是用于至少从数据存储器获取数据或者将数据写入到数据存储器中的指令。
4.根据任一前述权利要求所述的方法,其中在得到所述修改地址之后执行以下步骤:
检验(402)所述修改地址是否是有效地址;以及
如果所述修改地址不是有效地址则发信号(404)。
5.根据任一前述权利要求所述的方法,其中所述第二数学函数具有作为程序计数器范围的正确超集的范围,所述程序计数器用于执行所述计算机程序;并且其中所述第二数学函数配置为:在利用不等于所述第二值的值来处理所述原始地址的情况下,使得所述修改地址位于所述程序计数器的范围之外。
6.根据任一前述权利要求所述的方法,其中将所述特定基本块中的第一指令存储在指令存储器(106)的具体地址中,并且其中所述起始值起依赖于所述具体地址。
7.根据任一前述权利要求所述的方法,其中所述第一和第二数学函数的至少一个包括散列函数。
8.根据任一前述权利要求所述的方法,其中所述修改地址的得出包括原始地址和第二值的线性组合。
9.根据任一前述权利要求所述的方法,其中所述第二数学函数包括使用密钥的加密或解密。
10.根据任一前述权利要求所述的方法,其中从防篡改设备中得到所述起始值。
11.一种计算机体系结构(100),包括:用于执行计算机程序的处理器(102);所述计算机体系结构(100)包括用于执行根据权利要求1-9中任一项所述方法的装置(104)。
12.一种配置有根据权利要求11所述的计算机体系结构(100)的设备,其中所述设备包括以下之一:智能卡、机顶盒、移动电话和个人数字助手。
13.一种计算机程序产品,包括用于实现根据权利要求1-10中任一项所述方法的计算机代码。
14.一种用于修改使用权利要求1方法执行的计算机程序的另外方法,包括以下步骤:
在所述计算机程序内识别包括第一个数指令的基本块(502);
在所述基本块内识别包括第一地址的另外特定指令(504);
根据第一数学函数处理起始值以及所述基本块中直到和/或包括具有第一地址的所述另外特定指令的所有指令的表示,以便得出第二值(506);
确定原始地址,使得根据第二数学函数处理所述第二值和所述原始地址,产生所述第一地址(508);
通过用所述原始地址代替所述第一地址来修改所述特定的指令(510)。
15.一种另外的计算机程序产品,包括用于实现根据权利要求14所述另外方法的计算机代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于NXP股份有限公司,未经NXP股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200980119756.5/1.html,转载请声明来源钻瓜专利网。





