[发明专利]程序可执行映像加密无效
申请号: | 200680038390.5 | 申请日: | 2006-10-10 |
公开(公告)号: | CN101288083A | 公开(公告)日: | 2008-10-15 |
发明(设计)人: | 科林·金 | 申请(专利权)人: | NXP股份有限公司 |
主分类号: | G06F21/22 | 分类号: | G06F21/22 |
代理公司: | 中科专利商标代理有限责任公司 | 代理人: | 朱进桂 |
地址: | 荷兰艾*** | 国省代码: | 荷兰;NL |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 可执行 映像 加密 | ||
技术领域
本发明涉及一种用于对可执行映像进行加密和执行的方法和系统。更具体地,本发明涉及一种用于对可执行映像内容进行加密和加载的方法和系统。
背景技术
软件开发需要在时间和资金双方面的相当大的投入,并且诸如未授权的拷贝或共享之类的未授权的软件使用最终导致了软件开发者的收入损失。未授权软件的示例可以包括由第三方在没有获得必需的授权的情况下制造的拷贝,或者通过对等网络对未授权拷贝的共享。这种软件还可以包括也需要防止被拷贝的可执行的图像或声音文件。
为了实现这种保护,公知的是使用加密措施来防止软件的未授权拷贝被执行。这种措施典型地包括对软件的一个或更多个可执行部分进行加密,这可以防止完整地运行该软件,或者禁用该软件的一个或更多个独立的功能特征,以使得该软件非最优地运行。作为示例,公知的是在运行之前对可执行程序内容进行加密,以保护其中所包含的算法的实现。这种可执行内容的示例可以包括在程序文件中包含的编解码器,例如典型地用于压缩图像和声音文件的JPEG、MP3和WMA格式。编解码器可以将数据变换为编码的形式(通常用于传输、存储或加密)以及对该数据进行提取或解码以便以更适于特定操作的格式来观看或处理。编解码器通常用于视频会议和流媒体解决方案中。
作为示例,US-A-2004/0125954公开了一种数据加密/解密系统,该系统以加密形式保存软件程序所需要的数据单元。软件生产商可以选择并加密被称为可执行程序中的关键数据单元的一个或更多个程序数据节区和/或文本节区。为了执行该软件,用户必须获得许可密钥,以对该程序所使用的关键数据单元进行解密。通过提供不同的许可密钥,可以提供不同的许可选项,该许可选项允许软件生产商或供应商根据所提供的许可密钥启用的功能来实行对程序的功能等级的控制。
然而,由于在执行程序映像之前对该可执行映像进行解密消耗了宝贵的处理器周期,从而导致了反应较不灵敏的系统,因此US-A-2004/0125954中所提供的解决方案导致了较低的处理速度。此外,在US-A-2004/0125954中所提到的关键数据节区应用于程序代码自身(例如程序数据节区和文本节区),而不应用于包含诸如修正表之类的必要信息的程序头,这使得程序加载器能够将程序重定位到期望的存储区中。
公知的是将这种加密技术用于通称为嵌入式系统的专用计算机系统中。嵌入式系统可以包括被布置用于执行预定任务的微处理器或微控制器。在诸如用于消费电子和汽车的那些嵌入式系统之类的嵌入式系统中,典型地需要其组件较小和较便宜。具有片上存储器管理单元(MMU)的微处理器倾向于较为复杂和昂贵,因此典型地不用于不需要这种复杂性的嵌入式系统。在该处理器内,MMU负责保护系统资源使之免于不需要的访问,并且还提供了处理虚拟存储器的能力。为了减少嵌入式系统中的这种组件成本,公知的是使用所谓的“无MMU(MMU-less)”处理器,其示例是Philips TriMedia媒体处理器。然而,在将可执行文件加载到无MMU处理器时,必须在可以执行该可执行文件之前,将该可执行文件重定位到期望的存储单元。
可以通过使用重定位修正表将映像重定位至存储器中的新地址,来实现对可执行映像的重定位。修正表(也通称为补丁表)允许修改可执行映像,以使得该映像可以在期望的存储单元处运行。该过程典型地包括以下独立步骤:对修正数据进行加密,对加密的修正数据进行重定位,以及对修正数据进行解密,以产生最终修正的可执行映像。然而,该修正或修补过程可能消耗宝贵的处理器周期,从而导致较慢的处理器操作。作为分离的和不同的操作,对可执行代码的解密和重定位可以验证相对耗时的过程。因此,通过减少操作次数来以较少的时间完成这些操作,可用于产生较快的加载和反应较灵敏的系统。
发明内容
本发明设法提供一种用于快速且有效地对可执行映像进行加密和执行的方法和系统,其与已知的这种方法和系统相比具有优点。
根据本发明的一方面,提供了一种对可执行映像进行加密的方法,该方法包括以下步骤:使用源文件中的命令来将可执行映像的节区标记为要被加密,并编译所述可执行映像以生成目标文件,使用链接器来链接所述可执行映像中的一个或更多个,以产生最终的可执行映像,以及修正处理,该方法进一步包括以下步骤:将所述链接的可执行映像传递至链接器之后的加密引擎,以对重定位修正补丁表以及被标记为加密的可执行映像的节区进行加密,以使得可以在加载时间对该可执行映像进行解密、重定位和执行。
具体地,本发明设法以克服一个或更多个上述缺点的方式来防止对可执行文件的非法使用,具体地是防止对可执行文件的非法拷贝。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于NXP股份有限公司,未经NXP股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200680038390.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:透镜单元和透镜驱动装置
- 下一篇:抽屉抽出导向装置