加载格式的程序代码的产生以及可执行程序代码的提供制造技术

技术编号:2836572 阅读:195 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种用于为便携式数据载体(12)产生加载格式的程序代码(24,30)的方法。根据所述方法,使用伪库(20),其与存储在数据载体(12)中的库(38)的不同在于,存储在数据载体的库(38)中的至少某些内部功能,在伪库(12)中不存在或被隐藏或被编码。根据用于在便携式数据载体(12)中提供可执行程序代码(40)的所述方法,程序代码(24,30)以加载格式链接至存储在数据载体(12)中的库(38)。本发明专利技术还涉及具有相应特征的设备(10,12)以及计算机程序产品。本发明专利技术提供用来保密的保护技术,并且允许产生用于便携式数据载体(12)的加载格式的程序代码(24,30),并且提供便携式数据载体(12)中的可执行程序代码(40)。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术一般涉及便携式数据载体领域和用于这种数据载体的软件的创建。特别地,本专利技术涉及如下领域产生用于便携式数据载体的程序代码,将程序代码加载到数据载体中,并提供用于由数据载体的处理器执行的程序代码。为了本文的目的,便携式数据载体可以采取芯片卡(智能卡)或紧凑芯片模块的形式,并且在本专利技术的某些实施例中,还可以采取其他类构造的有限资源系统的形式。
技术介绍
近年来,在连续的技术发展过程中,便携式数据载体已经变得日益功能强大。这对由硬件和存储空间构成可用的计算能力、以及由操作系统提供的功能都是确实的。现代便携式数据载体展现允许程序代码的后加载(即,在数据载体的运行期间加载程序代码)的功能(functionality)。应用程序可被后加载到的数据载体已经为人所知一段时间了。然而目前,数据载体还正在发展,其允许操作系统的部分例如驱动程序(driver)、库或函数模块(functionalmodule)的后加载。将期望这种后加载选项在未来将发展成用于便携式数据载体的灵活操作系统的重要部分。通常,与便携式数据载体相关的重要因素是安全性和间谍保护方面,因为便携式数据载体经常被用于安全关键应用,并且未授权使用或窥探的结果可引起相当大的损害。允许程序代码的后加载的数据载体的特别问题在于,数据载体的内部工作必须尽可能不被暴露。特别地,必须确保要后加载的程序代码的外部开发者不需要或不能获得关于数据载体的内部结构和内部程序结构的信息。因此,例如数据载体的平台相关函数(function)必须尽可能地保持隐藏,即使要被后加载的程序代码最终使用这些函数。
技术实现思路
本专利技术的目的是全部或部分解决上述的问题。特别地,本专利技术旨在提供安全、保护隐私的技术,其允许产生用于便携式数据载体的加载格式的程序代码,并提供便携式数据载体中的可执行程序代码。根据本专利技术,由具有权利要求1或权利要求4的特征的方法、具有权利要求16的特征的设备、以及具有权利要求17或权利要求18的特征的计算机程序产品,全部地或者部分地实现了该目的。各从属权利要求定义本专利技术的优选实施例。本专利技术的基本原则是仅提供数据载体外部的伪库,该伪库与位于数据载体上的库的不同在于,位于数据载体上的库的至少某些内部工作在伪库中不存在或被隐藏或被屏蔽。只有伪库-并且可选地相关联的文件-需要对于外部程序开发者可访问。这样,信息可以保密,从所述信息第三方可能得出关于数据载体的内部工作的不期望的结论。这样,本专利技术允许保护甚至由第三方例如由独立软件公司或数据载体的产业用户开发可后加载的程序代码。目标代码格式的程序代码被至少部分与伪库相关地链接。这意味着,特别在本专利技术的某些实施例中,加载格式的程序代码仍可以包括通常包括在目标代码格式中的类型的符号信息。在其他的实施例中,相反,与伪库相关的、完全链接的程序代码以加载格式产生。进一步的链接过程发生在数据载体上,其在优选实施例中采取动态链接过程的形式。在不同实施例中,该链接过程可以发生在加载时、或运行时、或部分地在加载时部分地在运行时。在数据载体上执行的链接过程与位于数据载体上的私有库相关地发生。在优选实施例中,数据载体外部执行的链接是与伪库的虚拟函数相关的虚拟链接。因此,在某些实施例中,加载格式的程序代码中的虚拟函数调用,可以由位于数据载体上的库的实际函数调用在数据载体内替换。还提供了本专利技术的实施例,其中加载格式的程序代码具有分支表或引用表,其由仅在数据载体上链接时引用真实的库的表项填充。特别-但不仅-在这些实施例中规定虚拟函数调用在位于数据载体上的库中要被解决。这可以发生在加载时、或运行时、或部分地在加载时部分地在运行时。在本专利技术的优选实施例中,伪库提供调用接口,其与位于数据载体上的库的调用接口不同。特别地,由伪库提供的调用接口可以是虚拟调用接口。为了实现高等级的安全性,防止程序代码的破坏以及防止不期望地后加载未授权的程序代码,在优选实施例中创建了授权数据,并且在程序代码加载时检测该授权数据。在优选实施例中,数据载体的操作系统和/或应用程序的后加载的程序代码的灵活和自动检测变得可能,这是由于由程序代码提供的函数被输入到数据载体的管理单元中。产生并加载到数据载体中的程序代码可以是,例如应用程序或内核模块。在优选实施例中规定,程序代码是自然(native)程序代码。这里特别地,二进制码应该被认为是自然程序代码,所述二进制码是由数据载体的处理器可执行的,无需解释的中介并且无需虚拟机。根据本专利技术的计算机程序产品包括用于实现根据本专利技术的方法的程序命令,或已由根据本专利技术的方法产生的程序命令。这样的计算机程序产品可以是物理媒体,例如,半导体存储器或软盘或CD-ROM。然而,计算机程序产品还可以是非物理媒体,例如,在计算机网络上传输的信号。特别地,计算机程序产品可以包括用于程序开发系统或便携式数据载体的软件,或与便携式数据载体的生产或初始化或个性化或操作相结合而使用。根据本专利技术的设备可以具体为程序开发系统或便携式数据载体。在优选的进一步实施例中,计算机程序产品和/或设备包括对应于本说明书中提到的那些特征、和/或从属方法权利要求中提到的那些特征。附图说明从下面示例性实施例以及多个作为替代的实施例的描述,本专利技术的其他的特征、目的和优点是明显的。在示意图中图1是根据本专利技术的示例性实施例的程序开发系统和数据载体中的数据结构和数据处理阶段的概念图;图2是在图1的程序开发系统中执行的、用于产生加载格式的程序代码的方法的流程图;图3是在图1的数据载体中执行的、用于提供可执行程序代码的方法的流程图,以及图4是位于数据载体上的库和伪库间的关系的示例性表示。具体实施例方式图1是程序开发系统10和便携式数据载体12的示意表示。程序开发系统10可以采取具有合适软件的传统个人计算机或工作站的形式。在本示例性实施例中,数据载体12是具有本身众所周知的硬件的芯片卡或芯片模块。特别地,数据载体12包含单芯片微控制器,其具有处理器、多个配置用于不同技术的存储器域(field)、以及用于有线或无线通信的接口电路。在图1中所示的示例性实施例中,程序代码的产生从源文本14开始,其由编译器16转换至对应的目标代码格式的程序代码18。在程序开发系统10中,伪库20可用,其将在下面更详细的描述。从以目标代码格式呈现的程序代码18以及伪库20,链接器22产生至少部分链接的加载格式的程序代码24。为了防止疏忽或恶意破坏而保护程序代码24,使用了授权发生器26,其产生授权数据28-例如,用于程序代码24的合适的校验和。由授权数据28保护的加载格式的程序代码30,形成借助于程序开发系统10执行的开发过程的结果。该程序代码30被存储,用于接下来的使用。程序代码30可以在数据载体12运行期间被加载到其中。加载过程可以例如以终端客户的前提,或者结合数据载体12的产生或初始化或个性化发生。程序代码30在这种情形出现在程序开发系统10或初始化或个性化设备或终端用户的终端中,并且被传输至数据载体12。在加载过程中,数据载体12处于运行中。这应当被理解为意味着在加载过程期间,程序代码30被数据载体12的处理器积极地处理并修改。图1用虚线箭头表示由加载程序32将加载格式的保护的程序代码30接收-可选地经由上述中介站之一-到数据本文档来自技高网...

【技术保护点】
一种产生加载格式的程序代码(24,30)的方法,该方法意图在于在便携式数据载体(12)运行期间被加载到其中并由所述数据载体(12)的处理器执行,以及,在所述执行期间,使用位于所述数据载体(12)上的库(38)的函数,所述方法具有在所述数据载体(12)外执行的下列步骤:产生目标代码格式的程序代码(18),以及至少部分地与伪库(20)相关地链接目标代码格式的程序代码(18),以便获得加载格式的程序代码(24,30),所述伪库(20)与位于所述数据载体(12)上的库(38)的不同在于如下方式:位于所述数据载体(12)上的库(38)的至少一些内部工作,在伪库(20)中不存在或被隐藏或被屏蔽。

【技术特征摘要】
【国外来华专利技术】DE 2004-12-6 102004058882.11.一种产生加载格式的程序代码(24,30)的方法,该方法意图在于在便携式数据载体(12)运行期间被加载到其中并由所述数据载体(12)的处理器执行,以及,在所述执行期间,使用位于所述数据载体(12)上的库(38)的函数,所述方法具有在所述数据载体(12)外执行的下列步骤产生目标代码格式的程序代码(18),以及至少部分地与伪库(20)相关地链接目标代码格式的程序代码(18),以便获得加载格式的程序代码(24,30),所述伪库(20)与位于所述数据载体(12)上的库(38)的不同在于如下方式位于所述数据载体(12)上的库(38)的至少一些内部工作,在伪库(20)中不存在或被隐藏或被屏蔽。2.如权利要求1所述的方法,其特征在于,所述链接是与所述伪库(20)的虚拟函数相关的虚拟链接。3.如权利要求1或权利要求2所述的方法,其特征在于,创建授权数据(28)以便保护加载格式的所述程序代码(24,30),防止破坏。4.一种在便携式数据载体(12)中提供可执行程序代码(40)的方法,所述可执行程序代码(40)被建立,以便在由所述数据载体(12)的处理器的执行期间,使用位于所述数据载体(12)上的库(38)的函数,所述方法具有由所述数据载体(12)的处理器执行的下列步骤在所述数据载体(12)的运行期间,加载加载格式的程序代码(24,30),所述加载格式的程序代码(24,30)已被至少部分地与伪库(20)相关地链接,其与位于所述数据载体(12)上的库(38)的不同在于如下方式位于所述数据载体(12)上的库(38)的至少一些内部工作,在所述伪库(20)中不存在或被隐藏或被屏蔽,以及与位于所述数据载体(12)上的库(38)相关地链接加载格式的所述程序代码(24,30),以便得到所述可执行的程序代码(40)。5.如权利要求4所述的方法,其特征在于,所述链接是动态链接。...

【专利技术属性】
技术研发人员:乌尔里克科尔曾伯格斯蒂芬斯皮茨沃尔夫冈埃芬
申请(专利权)人:德国捷德有限公司
类型:发明
国别省市:DE[德国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1