当前位置: 首页 > 专利查询>施乐公司专利>正文

用于创建可执行代码的副本的唯一标识及其管理的方法技术

技术编号:2848115 阅读:214 留言:0更新日期:2012-04-11 18:40
一种方法以电子方式修改包括多个数据元素的已编译可执行文件,通过以下方式:编译源代码以创建具有与源代码对应的第一数据结构的已编译可执行文件,使得每次编译源代码时实现第一数据结构;重新排列第一已编译可执行文件中的预定数量的数据元素的位置以创建具有第二数据结构的已编译可执行文件;根据重新排列位置编辑已编译可执行文件中的地址数据以产生具有唯一第二数据结构的、以与具有第一数据结构的已编译可执行文件相同的方式起作用的已编译可执行文件。这个唯一第二数据结构在软件文件上创建在保持其功能性时实质上不可消除的标记。唯一第二数据结构对应于可执行代码的特定副本,从而实现对可执行代码的来源的确定。

【技术实现步骤摘要】

本专利技术涉及标识方法,具体地说,涉及。
技术介绍
软件盗版是一个重大问题。很难防止人们非法复制软件以及其它类似的电子文件。该问题的一部分是唯一标识软件或电子文件的特定副本方面的困难。本文所述的是一种以几乎不可消除的方式唯一标识软件文件的副本的方法。当软件被出售时,它可经由CD-ROM(或类似的基于盘的技术)或电子文件下载来分发。当存在批量生产的产品、如操作系统或主要应用程序时可采用CD-ROM。电子文件下载可用来分发更新或补丁。在一些情况中,完整的应用程序可经由电子下载来分发。当软件代码被编制或编译为可在数字计算机上运行的形式时,它被转换为可执行软件文件。可执行软件文件的一个实例示于图1。如图1所示,传统可执行软件文件包含数据部分100和代码部分200。数据部分100包括数据位置110、120、130和140。数据位置110、120、130和140可由代码部分200中的指令210、220、230和240引用。按照传统方式,代码部分200还包括子例程300和310。代码部分200中的子例程300和310由指令210、220、230和240组成,它们可分别通过操作数1100、1200、1300和1400引用地址位置,以便对位于存储在操作数1100、1200、1300和1400中的地址的数据执行操作。更具体来说,如图1所示,操作数1100、1200、1300和1400分别存储数据位置110、120、130和140的地址值。指令210、220、230和240还可引用其它子例程的起始地址,以便使那些子例程被运行。按照传统方式,软件文件的各元素位于那个软件文件中的特定位置。通过在不同位置示出上述元素的每个,在图1中以符号表示这种情况。在可执行软件文件中,软件文件内各项目与其它项目的相对位置在它被加载到数字计算机的存储器中以便执行之后保持相同。各地址110、120、130和140仅表示一个位置,而子例程300和310则包含一个以上邻接位置。传统可执行软件文件的第一入口点250是在数字计算机开始执行可执行软件文件的指令时要执行的第一指令的位置。这个第一入口点250在传统上是可执行软件文件的第一位置或者接近第一位置。现在参照图2,指令410之后跟随至少一个操作数。在图2中,示出两个操作数420和430。操作数的数量在传统上根据操作数之前的指令的身份来改变。再参照图1,当软件文件被执行时,从位于第一入口点250的指令开始执行指令。这个指令可包含“跳转”指令,它将使下一条指令从不与“跳转”指令相邻的位置读取。虽然图1说明了分为数据部分100和代码部分200的可执行软件文件,但是子例程300、310和地址位置110、120、130、140可驻留在可执行软件文件中的任何位置,并且可以混合。但是,每一个单独子例程300和310由于包含一个以上邻接位置而无法被分割,并且必须保持原样。再参照图2,指令410的操作数420和430可包含数据,或者可包含传统可执行软件文件中的地址位置。可执行软件文件的操作数420和430中的地址仅与可执行软件文件中的位置有关。在可执行软件文件被加载到数字计算机的存储器之前,操作数420和430中的地址与数字计算机的存储器中的物理位置无关。在传统可执行软件文件被加载到存储器时,数字计算机必须执行称作“链接编辑”的操作。换言之,包含对于可执行软件文件中的另一个位置的引用的可执行软件文件中的每个位置必须经过修改,以便引用正执行软件文件的数字计算机的存储器中的物理位置。参照图1,数字计算机中的传统“链接编辑”程序确定第一入口点250的物理起始地址。那个相同的“链接编辑”程序还将可执行软件文件中的所有地址引用增加那个位移。例如,如果数字计算机中的传统“链接编辑”程序将第一入口点250的物理起始地址确定为具有值“400”的物理起始地址,如果操作数1100、1200、1300和1400包含地址引用,则这些操作数中的所有值也被增加“400”。通过从第一入口点250中的指令开始沿着可执行软件文件中的指令的执行路径,执行“链接编辑”的数字计算机中的程序可确定哪些位置包含地址。如上所述,可能包含地址引用的可执行软件文件中的唯一位置是指令的操作数。指令的身份确定哪些可能有的操作数必须是地址引用。可执行软件文件中的指令的执行路径可由执行“链接编辑”的程序来确定,因为要执行的下一条指令位于当前指令的操作数之后,或者位于由当前指令的操作数之一所引用的相对地址。传统的链接编辑方法还可沿着基于条件的执行路径;这类算法的细节在此不作论述。需要适当工作的链接编辑程序,以便让数字计算机成功加载和执行可执行软件文件。利用以上所述的概念,能够创建相同的或者在特定预定位置中的信息被改变的可执行文件。通过改变特定预定位置中的信息,软件分销商能够将序列号或其它信息段(密钥)嵌入可执行文件,它必须由用户输入以便启用软件。由于上述变更被限制到特定预定位置,因此,软件盗版者可轻易地探知特定预定位置,因而软件盗版者能够轻易地遮掩与特定预定位置关联的信息,以便清除序列号或者禁止内置于应用程序的任何副本保护的操作。随着序列号区被清除,就无法确定软件是如何非法得到的。因此,希望提供一种实现软件副本来源的标识的方法。此外,还希望提供一种实现难以遮掩或清除的软件副本来源的标识的方法。
技术实现思路
根据本专利技术的一个方面,提供一种用于创建各具有唯一标识值的已编译可执行文件的方法,包括(a)编译源代码以创建具有与所述源代码对应的第一数据结构的已编译可执行文件,使得每当编译所述源代码时实现所述第一数据结构;(b)重新排列所述已编译可执行文件内的预定数量的数据元素的位置,从而创建具有第二数据结构的已编译可执行文件,所述第二数据结构不同于所述第一数据结构;(c)根据所述重新排列的位置来编辑所述已编译文件内的地址数据,从而产生以与具有所述第一数据结构的所述已编译可执行文件相同的方式起作用的具有第二数据结构的已编译可执行文件;以及(d)创建表示具有第二数据结构的所述已编译可执行文件的所述数据结构的唯一值,所述唯一值提供具有第二数据结构的所述已编译可执行文件的唯一标识。根据本专利技术的另一方面,提供一种用于创建和记录已编译可执行文件的每个副本的唯一标识值的方法,包括(a)编译源代码以创建具有与所述源代码对应的第一数据结构的已编译可执行文件,使得每当编译所述源代码时实现所述第一数据结构;(b)重新排列具有所述第一数据结构的所述已编译可执行文件内的预定数量的数据元素的位置,从而创建具有第二数据结构的已编译文件,所述第二数据结构不同于所述第一数据结构;(c)根据所述重新排列的位置来编辑所述已编译文件内的地址数据,从而产生以与具有所述第一数据结构的所述已编译可执行文件相同的方式起作用的具有第二数据结构的已编译可执行文件;(d)创建表示具有非第一数据结构的所述已编译可执行文件的每个唯一数据结构的唯一值,所述唯一值提供具有唯一的非第一数据结构的每个已编译可执行文件的唯一标识;(e)把唯一资产代码分配给具有唯一的非第一数据结构的每个已编译可执行文件;(f)把具有唯一的非第一数据结构的所述已编译可执行文件记录到记录媒体上;以及(g)以相关方式存储与具有唯一的非第一数据结构的所述已编译可执行文件本文档来自技高网
...

【技术保护点】
一种用于创建各具有唯一标识值的已编译可执行文件的方法,包括:(a)编译源代码以创建具有与所述源代码对应的第一数据结构的已编译可执行文件,使得每当编译所述源代码时实现所述第一数据结构;(b)重新排列所述已编译可执行文件内的预定数量的数据元素的位置,从而创建具有第二数据结构的已编译可执行文件,所述第二数据结构不同于所述第一数据结构;(c)根据所述重新排列的位置来编辑所述已编译文件内的地址数据,从而产生以与具有所述第一数据结构的所述已编译可执行文件相同的方式起作用的具有第二数据结构的已编译可执行文件;以及(d)创建表示具有第二数据结构的所述已编译可执行文件的所述数据结构的唯一值,所述唯一值提供具有第二数据结构的所述已编译可执行文件的唯一标识。

【技术特征摘要】
US 2005-5-12 11/1276731.一种用于创建各具有唯一标识值的已编译可执行文件的方法,包括(a)编译源代码以创建具有与所述源代码对应的第一数据结构的已编译可执行文件,使得每当编译所述源代码时实现所述第一数据结构;(b)重新排列所述已编译可执行文件内的预定数量的数据元素的位置,从而创建具有第二数据结构的已编译可执行文件,所述第二数据结构不同于所述第一数据结构;(c)根据所述重新排列的位置来编辑所述已编译文件内的地址数据,从而产生以与具有所述第一数据结构的所述已编译可执行文件相同的方式起作用的具有第二数据结构的已编译可执行文件;以及(d)创建表示具有第二数据结构的所述已编译可执行文件的所述数据结构的唯一值,所述唯一值提供具有第二数据结构的所述已编译可执行文件的唯一标识。2.一种用于创建和记录已编译可执行文件的每个副本的唯一标识值的方法,包括(a)编译源代码以创建具有与所述源代码对应的第一数据结...

【专利技术属性】
技术研发人员:BE弗农
申请(专利权)人:施乐公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利