一种对程序执行器的程序信息的保护方法

文档序号:6555410阅读:224来源:国知局
专利名称:一种对程序执行器的程序信息的保护方法
技术领域
本发明涉及一种对程序执行器的程序信息的保护方法,可适用于通称为微控制器(MCU)、微处理器(μP或MPU)、数字信号处理器(DSP)、中央处理器(CPU)、图形处理器(GPU)的程序执行器,以及用于片上系统(System On Chip)的嵌入式程序执行器。
背景技术
目前各种程序执行器得到了广泛的应用,如微控制器(MCU)、微处理器(μP或MPU)、数字信号处理器(DSP)、中央处理器(CPU)、图形处理器(GPU)以及用于片上系统(System On Chip)的嵌入式微处理器。通常在这些程序执行器的应用中,需要利用非挥发的存储器如掩膜只读存储器(Mask ROM)、可编程只读存储器(PROM)、一次可编程只读存储器(OTP ROM)、电可擦写只读存储器(EEPROM)、闪存(Flash)或磁盘、光盘、磁带等来存放程序执行器读取的二进制机器码形式的程序信息。非挥发的存储器存放机器码程序的优点是这些信息在掉电的情况下可以长期保存而不丢失。
图1示出了现有技术中客户在程序执行器上开发程序的流程。请参见图1,S11客户从芯片制造商或者供应商处获得程序执行器;S12客户在计算机上编写的程序源码在计算机中被编译成二进制机器码程序,该源码可以是汇编代码或C程序代码等;S13客户将二进制机器码程序写入上述程序执行器的非挥发存储器中,该非挥发存储器可以设计在程序执行器芯片内部,也可以设置在片外与该执行器电性连接。经过上述步骤,二进制机器码程序就能在程序执行器上顺利运行了。接着参见图2A和图2B,图1所示的流程以框图的形式示出。其中图2A示出了客户程序存储器设计在片内的框图结构,图2B示出了客户程序存储器设计在片外的框图结构。如图2A所示,计算机上的编译器21将源码编译成二进制机器码程序,该机器码程序被写入到位于芯片23A片内的客户程序存储器22A中。芯片23A运行该存储器22A中的机器码程序。类似地,如图2B所示,源码经编译器21编译成二进制机器码程序后写入到位于芯片23B外并与之电性连接的存储器22B中。芯片23B运行该存储器22B中的机器码程序。
但是,不管非挥发存储器设计在片内还是片外,最终总是实现在某种物理材料上的(如硅片),所以任何具有相关技术背景的技术人员都能借助某些物理或化学的方法,以较低的成本读出非挥发存储器中存放的程序信息。为了描述方便,下文中把在未获授权情况下企图读取他人程序执行器产品中程序信息的人称为破解者。
如果破解者读出存储于存储器22A或22B(图2A或图2B中示出)中的二进制机器码程序,即可通过采购相同的程序执行器并写入该二进制机器码程序来实现快速仿制。而且,汇编指令集和该程序执行器的二进制机器码指令集之间的转换方式是公开且通用的,因此破解者还可以通过反汇编客户的二进制机器码程序来获取对应的汇编代码,从而获得程序的设计思想和算法,也可进一步在此基础上对程序进行改进。
为此,人们开发了很多对机器码程序信息的保护方法,这些方法的指导思想都是采用各种手段防止二进制机器码程序从存储器22A或22B(图2A或图2B中示出)中被读出或加大破解者读出二进制机器码程序的时间和成本。例如,设置加密位进行保护,在完成向存储器写入二进制机器码程序后使能加密位以防止信息被读出。一个简单的方法即可令该保护机制失效破解者可以打开集成电路封装,然后用某些特定的方法(如聚焦离子束(FIB))控制加密位信号,从而达到读取二进制机器码程序的目的。因此,采用加密位的方法增加的破解成本不大,防止破解的效果一般。

发明内容
本发明的目的在于解决上述问题,提供了一种对程序执行器的程序信息的保护方法,它不依赖于防止客户的程序信息被读出,很大程度上增加了破解成本,也大大延长了破解所需的时间,能有效地防止客户的程序信息在脱离制造商和客户控制的情况下被轻易破解。
本发明的技术方案为一种对程序执行器的程序信息的保护方法,用于在所述程序执行器脱离制造商和客户控制的情况下保护客户基于所述程序执行器开发的程序信息,其中,所述保护方法包括(1)在所述程序执行器中增设客户标识区,所述客户标识区中存储对应不同客户的客户标识信息,并通过技术手段确保任何客户无法在客户标识区中写入其他客户的客户标识信息;(2)所述客户标识信息确定一种与之一一对应的由汇编程序到机器码程序的编译方法,且该编译方法无须公开,可仅由制造商和对应的客户掌握;(3)所述程序执行器根据客户标识信息解释并执行客户的机器码程序,且所述解释方法与步骤(2)中的编译方法匹配,类似的,该解释方法也无须公开,可仅由制造商和对应的客户掌握。
上述的对程序执行器的程序信息的保护方法,其中,步骤(1)中,所述技术手段是指所述客户标识区采用一次可编程只读存储器实现,由制造商在所述客户标识区预设客户对应的客户标识信息。
上述的对程序执行器的程序信息的保护方法,其中,步骤(1)中,所述技术手段是指,首先由制造商提供给客户对应的客户标识配置号,再由客户自行向程序执行器输入该客户标识配置号,所述客户标识配置号经程序执行器处理后生成客户标识信息并存入所述客户标识区。该处理功能的具体内容无须公开可仅由制造商掌握,而提供给每个客户的客户标识配置号可仅由制造商和对应的客户掌握。
上述的对程序执行器的程序信息的保护方法,其中,所述处理功能包括具备一定复杂度的校验、运算、或者校验与运算的组合以增加破解的难度,而实现该处理功能的主体可以是在程序执行器中新增的一块硬件电路或内嵌的一段程序或者它们的组合。
上述的对程序执行器的程序信息的保护方法,其中,步骤(2)中,所述编译方法是指由客户开发的汇编程序生成机器码程序的方法,若客户的原始程序设计采用的是高级程序语言,则需先将其转换成汇编程序再编译得到机器码程序。
上述的对程序执行器的程序信息的保护方法,其中,步骤(3)中,所述程序执行器有一套统一的内部机器码指令集,所述解释方法是首先根据客户标识信息将客户的机器码程序转换成符合内部机器码指令集的二进制机器码程序,然后程序执行器根据该内部机器码指令集执行所述二进制机器码程序。
上述的对程序执行器的程序信息的保护方法,其中,所述机器码程序的转换过程由一块新增的译码电路实现,所述译码电路根据不同的客户标识信息表现出不同的译码功能。所述译码电路的具体内容仅由制造商掌握。
上述的对程序执行器的程序信息的保护方法,其中,步骤(3)中,所述程序执行器具有多套机器码指令集,每套机器码指令集对应一个客户标识信息,所述程序执行器根据客户标识信息选择对应的机器码指令集,然后根据该机器码指令集解释及执行客户的机器码程序。
上述的对程序执行器的程序信息的保护方法,其中,所述编译方法和解释方法是静态的,编译和解释的行为不随时间的变化而变化。
上述的对程序执行器的程序信息的保护方法,其中,所述编译方法和解释方法是动态的,编译和解释的行为在不同的条件下是不同的。
本发明对比现有技术有如下的有益效果本发明通过客户标识信息来控制二进制机器码程序的编译和解释方式。破解者即使读出客户标识信息和二进制机器码程序,由于无法向程序执行器写入他人的客户标识信息,因此无法获得可执行该机器码程序的程序执行器,也不可能实现快速仿制。又由于无法获得与客户标识信息对应的编译或者解释方法,因此也无法读懂这些机器码程序或对机器码程序进行反汇编,从而无法获取他人的设计思想和算法,当然也不可能对该机器码程序进行改进。


图1是现有技术的客户开发程序的流程图。
图2A是现有技术的客户开发程序一个实施例的框图。
图2B是现有技术的客户开发程序另一实施例的框图。
图3是本发明中客户开发程序的一个实施例的流程图。
图4是图3所示实施例中一译码电路实施例的逻辑电路图。
图5是本发明中客户开发程序的另一实施例的流程图。
图6是图5所示实施例中一译码电路实施例的逻辑电路图。
图7是动态编译及解释的译码电路一实施例的逻辑电路图。
具体实施例方式
下面结合附图和实施例对本发明作进一步的描述。
图3示出了一种简单的采用了本发明的程序执行器的方案及客户在该程序执行器平台上进行程序开发的一个实施例的流程。该方案在现有程序执行器的基础上新增一块译码电路,它将来自客户程序存储器的机器码程序译码后再交给程序执行器。下面结合图3对该流程进行详细描述。
步骤S31客户A从制造商或供应商获得程序执行器,该程序执行器的客户标识区未经配置,即客户标识区为缺省值。程序执行器新增了一块硬件电路,该硬件电路的功能仅由制造商掌握,其输出端连接客户标识区的输入端。同时由制造商提供给客户A对应的客户标识配置号,该客户标识配置号具有唯一性且仅有制造商和客户A两者知道。客户A在拿到程序执行器后向程序执行器写入该客户标识配置号,该客户标识配置号通过所述新增的硬件电路的校验和运算后形成客户标识信息并存储至客户标识区中。其中客户标识配置号和客户标识信息可以是一个二进制串,而所述硬件电路的运算操作以二进制串的位运算为主,可以是取反运算、与或运算、重新排序等。因为客户标识区的信息只能通过所述硬件电路来输入修改,且硬件电路的功能是保密的,客户标识配置号也仅有制造商和客户两者才知道,所以即使破解者读出客户标识区上的客户标识信息,但由于不知道所述硬件电路的功能,就无法倒推出对应的客户标识配置号,也就无法向程序执行器的客户标识区写入想要的客户标识信息。举例来说,制造商分配给客户A的客户标识配置号是“1010”,客户A将该标识号输入至硬件电路,该硬件电路的功能是将输入的二进制串首末位互换后再重复6次后输出,于是该译码电路将“1010”转换成客户标识信息“001100110011001100110011”并存入客户A的客户标识区中。
应理解,上述的硬件电路并不是必须的,由程序执行器执行一段程序,该程序的功能与上述硬件电路的功能相同,也可以起到将客户标识配置号转换成客户标识信息的作用。或者将一硬件电路和一程序组合起来实现同样的功能。只要能起到相同作用的实现方法,都应包含在本发明的保护范围内。
步骤S32客户A在计算机上开发的程序源码在计算机中被编译成二进制机器码程序。一般来说,客户A开发的程序源码是汇编代码或者C程序代码等高级程序语言代码。汇编代码是基于汇编指令集来编写的,这些汇编指令集中包括常用的ADD、MOV、LOAD等指令。但是机器本身无法识别这些汇编指令,机器只能识别由0和1组成的二进制序列,也即二进制机器码指令。所以对某一种程序执行器,存在汇编指令集和二进制机器码指令集的对应关系,根据这种对应关系,可以将汇编代码转换成机器可以识别的二进制机器码。比如,在8086芯片中,其二进制指令格式是16位的,一条汇编语句“MOV AX,BX”被解释成“1000101111000011”的二进制码。如果程序源码是汇编代码,则在计算机上根据汇编指令集与内部二进制机器码指令集之间的对应关系,将汇编代码转换成二进制机器码。如果程序源码是C语言或者其他语言编写的代码,则需先编译成汇编代码,再将汇编代码转换成二进制机器码。这一步骤属于现有技术,同图1的步骤S12是一样的。
步骤S33根据客户A的客户标识信息确定一种转换方式,以该转换方式将上一步骤中原来的二进制机器码程序转换成客户A的二进制机器码程序。这种转换方式与步骤S35中译码电路的译码功能互为逆过程。步骤S33的这种转换方式是步骤S31中原来的二进制机器码与客户A的二进制机器码的一种对应关系。仍以步骤S31中客户A的客户标识信息“001100110011001100110011”为例,该客户标识信息说明在步骤S35中,程序执行器的解释方法是先将客户A的二进制程序码的前两位取反。明显地,其逆处理是将原来的二进制机器码的前两位取反,因此本步骤中相应的转换方式也是将原来二进制机器码的前两位取反以生成客户A的二进制机器码。仍以汇编语句“MOV AX,BX”为例,经步骤S32后被解释成“1000101111000011”的二进制码,经上述的转换方式转换后,生成“0100101111000011”的二进制码。在这里,转换方式是制造商提供给客户A并由制造商和客户A保密,可以是一种对该转换方式的文字描述,也可以是两种二进制机器码的对应表,也可以将该转换方式实现成一个程序模块。客户A在计算机上转换二进制机器码时,可以根据上述转换方式的文字描述或者两种二进制机器码的对应表在软件中手动转换,也可以使用上述程序模块进行自动转换。应理解,不应对具体的转换方法进行限制。
步骤S34转换为客户A独有的二进制机器码程序被写入程序执行器的非挥发存储器中,该非挥发存储器可以设计在程序执行器芯片的片内,也可以设置在片外与该执行器电性连接。一般而言,该非挥发存储器是只读存储器(ROM)。这一步骤也是现有技术,与图1中的步骤S13是相同的。经过上述的转换手段,破解者即使读出了存储在ROM中的客户A的二进制机器码程序,也无法实现快速仿制或者反汇编成汇编代码。因为存储于ROM中的客户A的二进制机器码程序已经是经过步骤S33转换处理过的,它与普通程序执行器中的机器码指令集并不兼容,也即不能被普通的程序执行器所识别,所以即使破解者去市场上采购同一型号的程序执行器,由于缺少了与转换操作对应的解释操作,也就无法运行该二进制机器码程序,故不能实现快速仿制。又因为转换方式是客户A独有的,转换后的二进制机器码和汇编代码之间的对应关系已经不是原来的对应关系,破解者在无法知晓该转换方式的情况下,无法通过反汇编将二进制机器码转换成汇编代码。故破解者无法获知程序的设计思想和算法,对程序进行改进也就无从谈起了。
步骤S35转换为客户A独有的二进制机器码经一译码电路转换成原来的二进制机器码。该步骤和步骤S33的转换过程是互逆的。给所有客户的程序执行器的译码电路都是一样的,但不同的客户标识信息可控制该译码电路表现出不同的译码功能。如上所述,经步骤S33转换之后的二进制机器码与程序执行器的内部机器码指令集无法兼容,不能被其识别。译码电路被客户A的客户标识信息配置成功能为将客户A独有的二进制机器码再次转换成原来可与程序执行器的内部机器码指令集兼容的二进制机器码。仍以上述客户A的客户标识信息为例,汇编语句“MOV AX,BX”在编译转换之后成为“0100101111000011”的二进制机器码,但是该二进制机器码无法被程序执行器所识别,译码电路根据客户A的客户标识信息配置成将二进制机器码的前两位取反,因此经译码电路,二进制机器码重新转换成“1000101111000011”,这就能被程序执行器所识别。程序执行器会根据该二进制机器码进行正确的操作将寄存器BX中的值移动至寄存器AX中。
译码电路以逻辑电路器件实现其特定功能,以上述将二进制机器码的前两位取反这一功能为例,该译码电路的实现方式如图4所示的虚线框。在ROM 41连向程序执行器42的前两根位(bit)数据线上各设置一个反向器43A、43B,其余的位数据线上不设任何器件直接连接ROM 41和程序执行器42。当然,实际的译码电路并不只有一种设计方式,只要达到所需的译码功能,都包括在本发明的权利要求范围内。
图5示出了采用了本发明的程序执行器的另一方案及客户在该程序执行器平台上进行程序开发的另一实施例的流程。下面结合图5对该流程进行详细描述。
步骤S51该步骤和图3所示实施例的步骤S31是相同的。在此就不再重复描述。举例来说,制造商分配给客户B的客户标识配置号是“1101”,客户B将该客户标识配置号输入至硬件电路,该硬件电路将“1101”转换成客户标识信息“110111011101110111011101”并存入客户标识区中。
步骤S52设计一个存储汇编代码和二进制机器码之间对应关系的库,该库中含有多张表,其中每张表对应一个客户的客户标识信息,存储汇编指令集和该客户所特有的二进制机器码指令集之间的对应关系。这个库可以被设计成一个汇编代码的解释程序,用来取代原来的汇编代码解释程序。举例来说,客户B具有一张汇编指令集和二进制机器码指令集之间对应关系的表,客户B的客户标识信息“110111011101110111011101”是指将二进制机器码的末两位交换,因此在表中汇编语句“MOV CL,55H”在该表中被解释成“1011000101010110”的二进制码。
步骤S53程序源码编译时,用客户标识区的客户标识信息所对应的编译方式将源码编译成二进制机器码。以客户B为例,使用上述新的汇编代码解释程序编译源码,在编译过程中,找到客户B对应的那张表,汇编语句“MOV CL,55H”被直接编译成“1011000101010110”的二进制码。此时实际上已经完成了二进制码转换的过程,它与图3所示实施例的不同之处在于,图3的实施例会将“MOV CL,55H”先编译成通用的“1011000101010101”的二进制码,然后根据末两位互换的方式转换成“1011000101010110”;而本实施例改变了编译的方式,直接将末两位互换的转换方式嵌入在编译过程中,也即在使用编译器对“MOV CL,55H”这一汇编语句进行编译后就直接形成了“1011000101010110”的二进制机器码。
步骤S54已编译成为客户B的二进制机器码写入程序执行器的非挥发存储器中。
步骤S55已编译成为客户B的二进制机器码在程序执行器中解释执行。与图3所示实施例的区别在于,本实施例中的程序执行器具有多个指令集,其中每个指令集对应一个客户的客户标识信息。程序执行器根据客户的客户标识信息,选取对应的指令集执行。以客户B为例,程序执行器根据客户B的客户标识信息,选取对应客户B的指令集后直接运行客户B的二进制机器码程序。
应理解,步骤S55也可以采用图3实施例的步骤S35来实现,即增加一个将二进制码的末两位互换的译码电路。译码电路以逻辑电路器件实现其特定功能,以上述将二进制码的末两位互换这一功能为例,该译码电路的实现方式如图6所示的虚线框。在ROM 61连向程序执行器63的末两位(bit)数据线上设置一个能使两位信号互换的模块62,其余的位数据线上不设任何器件直接连接ROM 61和程序执行器63。其中位数据线64连在模块62的输入口A上,位数据线65连在模块62的输入口B上,经模块62处理之后,输出口C输出输入口B接收的信号,而输出口D输出输入口A接收的信号。当然,实际的译码电路并不只有一种设计方式,只要达到所需的译码功能,都包括在本发明的权利要求范围内。
上述两个实施例中,编译和解释的方式都是静态的。也就是说,在编译和解释方式中,不会设置任何条件,对于同一个客户来说,同一条汇编语句在任何时候都被编译转换成同一个二进制机器码,反过来,同一个编译转换而来的二进制机器码在任何时候也被解释执行成同样的行为。为了增加破解的成本,提高破解的复杂度,也可以将编译和解释的方式设置为动态的。所谓动态是指可以设置一个条件,在不同的条件下,进行不同的编译和解释操作。举例来说,客户C的客户标识信息是“110000001100110011011000”,该客户标识信息表示的译码方法如下在之前的1000条指令中对二进制码的前两位取反,在接下来的1000条指令中对二进制码的末两位互换,然后重复上述过程。该译码电路的逻辑实现如图7的虚线框所示。ROM 71分别连接模块72和73,其中模块72可实现将二进制码的前两位取反,模块73可实现将二进制码的末两位互换。模块72和73连接一个选择器74。选择器74有一选择端Sel接收一控制信号,输出端连接程序执行器75。选择器74根据不同的控制信号选择其中一个输入口上的信号作为输出。在这个例子中,控制信号是指是否满足1000条指令已满这一条件。当然,在编译过程中也要用对应的动态方法。应理解,这里所述的动态方法是针对前述的静态方法而言的,可以应用于图3所示的实施例中,也可以应用于图5所示的实施例中。
还应理解,对于图3实施例的步骤S31和图5所示实施例的步骤S51,还可以采用另一种方式来实现。制造商在程序执行器出厂前就根据客户信息在客户标识区中预先写入客户对应的客户标识信息,该客户标识区采用一次可编程只读存储器(OTP ROM)实现。也就是说,程序执行器一旦出厂,其内部的客户标识区就无法擦写。
为了进一步增大破解难度,前述的本发明实施方法还可以在以下三点作出改进。第一点可以将译码电路和程序执行器本身的电路混和设计在一起,这样使得破解者难于得到译码电路,从而无法得知客户独有的编译解释方式。第二点译码电路应具备一定的复杂度,令破解者难以猜测译码电路的功能。比如,先将来自客户标识区的二进制信息做重新排序及一些数学运算后,然后根据运算结果对来自客户程序存储器的机器码指令做重新排序及部分取反,得到的结果输出给程序执行器。举例来说,如果破解者读出客户标识信息为“110011001100110011001101”的二进制串,容易联想到该编译转换方式是对二进制机器码的末两位互换。如果对客户标识信息也进行转换处理,将这个二进制串的各个位进行重新排序或者作一些逻辑运算,变成一个新的二进制串,再根据该结果对客户的机器码指令进行处理。破解者即使读取了客户标识信息二进制串,也无法从中容易地获得客户独有的转换方式的信息。第三点由客户标识配置号到客户标识信息的处理功能应具备一定的复杂度。客户标识配置号可以长一些,并加入校验码。向程序执行器输入的客户标识配置号要经校验通过后再进行重新排序及一些逻辑运算后再输出给客户标识区。
应理解,本发明的重点在于通过处理将存储于客户程序存储器上的二进制机器码以客户独有的编译方式进行编译,使得破解者即使获得这些机器码也无法快速仿制和反汇编成源码。上述提到的具体指令、具体的编译解释方式、译码电路的具体实现等仅作为示例,并不用来限制本发明。
上述实施例是提供给本领域普通技术人员来实现或使用本发明的,本领域普通技术人员可在不脱离本发明的发明思想的情况下,对上述实施例做出种种修改或变化,因而本发明的保护范围并不被上述实施例所限,而应该是符合权利要求书提到的创新性特征的最大范围。
权利要求
1一种对程序执行器的程序信息的保护方法,用于在所述程序执行器脱离制造商和客户控制的情况下保护客户基于所述程序执行器开发的程序信息,其特征在于,所述保护方法包括(1)在所述程序执行器中增设客户标识区,所述客户标识区中存储对应不同客户的客户标识信息,并通过技术手段确保任何客户无法在客户标识区中写入其他客户的客户标识信息;(2)所述客户标识信息确定一种与之一一对应的由汇编程序到机器码程序的编译方法;(3)所述程序执行器根据客户标识信息解释并执行客户的机器码程序,且所述解释方法与步骤(2)中的编译方法匹配。
2根据权利要求1所述的对程序执行器的程序信息的保护方法,其特征在于,步骤(1)中,所述技术手段是指所述客户标识区采用一次可编程只读存储器实现,由制造商在所述客户标识区预设客户对应的客户标识信息。
3根据权利要求1所述的对程序执行器的程序信息的保护方法,其特征在于,步骤(1)中,所述技术手段是指,首先由制造商提供给客户对应的客户标识配置号,再由客户自行向程序执行器输入该客户标识配置号,所述客户标识配置号经程序执行器处理后生成客户标识信息并存入所述客户标识区。
4根据权利要求3所述的对程序执行器的程序信息的保护方法,其特征在于,所述处理功能包括具备一定复杂度的校验、运算、或者校验与运算的组合以增加破解的难度,而实现该处理功能的主体可以是在程序执行器中新增的一块硬件电路或内嵌的一段程序或者它们的组合。
5根据权利要求1所述的对程序执行器的程序信息的保护方法,其特征在于,步骤(2)中,所述编译方法是指由客户开发的汇编程序生成机器码程序的方法,若客户的原始程序设计采用的是高级程序语言,则需先将其转换成汇编程序再编译得到机器码程序。
6根据权利要求1所述的对程序执行器的程序信息的保护方法,其特征在于,步骤(3)中,所述程序执行器有一套统一的内部机器码指令集,所述解释方法是首先根据客户标识信息将客户的机器码程序转换成符合内部机器码指令集的二进制机器码程序,然后程序执行器根据该内部机器码指令集执行所述二进制机器码程序。
7根据权利要求6所述的对程序执行器的程序信息的保护方法,其特征在于,所述机器码程序的转换过程由一块新增的译码电路实现,所述译码电路根据不同的客户标识信息表现出不同的译码功能。
8根据权利要求1所述的对程序执行器的程序信息的保护方法,其特征在于,步骤(3)中,所述程序执行器具有多套机器码指令集,每套机器码指令集对应一个客户标识信息,所述程序执行器根据客户标识信息选择对应的机器码指令集,然后根据该机器码指令集解释及执行客户的机器码程序。
9根据权利要求1所述的对程序执行器的程序信息的保护方法,其特征在于,所述编译方法和解释方法是静态的,编译和解释的行为不随时间的变化而变化。
10根据权利要求1所述的对程序执行器的程序信息的保护方法,其特征在于,所述编译方法和解释方法是动态的,编译和解释的行为在不同的条件下是不同的。
全文摘要
本发明公开了一种对程序执行器的程序信息的保护方法,它不依赖于防止客户的程序信息被读出,增加了破解成本,延长了破解所需时间,有效防止客户的程序信息被轻易破解。其技术方案为(1)在程序执行器中增设客户标识区,客户标识区中存储对应不同客户的客户标识信息,并通过技术手段确保任何客户无法在客户标识区中写入其他客户的客户标识信息;(2)所述客户标识信息确定一种与之一一对应的由汇编程序到机器码程序的编译方法;(3)程序执行器根据客户标识信息解释并执行客户的机器码程序,且解释方法与步骤(2)中的编译方法匹配。本发明可应用于保护程序执行器的程序信息。
文档编号G06F21/54GK1862557SQ20061002605
公开日2006年11月15日 申请日期2006年4月26日 优先权日2006年4月26日
发明者何波, 王涛 申请人:何波, 王涛
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1