CN1862557A - Method for protecting program information of program executive device - Google Patents
Method for protecting program information of program executive device Download PDFInfo
- Publication number
- CN1862557A CN1862557A CN 200610026054 CN200610026054A CN1862557A CN 1862557 A CN1862557 A CN 1862557A CN 200610026054 CN200610026054 CN 200610026054 CN 200610026054 A CN200610026054 A CN 200610026054A CN 1862557 A CN1862557 A CN 1862557A
- Authority
- CN
- China
- Prior art keywords
- program
- machine code
- client
- actuator
- subscriber identity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2117—User registration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
The present invention discloses a method for protecting program information of program executor. Its technical scheme includes the following steps: (1), in program executor a customer identification zone is added, in said customer identification zone the customer identification information correspondent to different customer can be stored, and a technical measure can be used to ensure that any customer can not write customer identification information of other customer into said customer identification zone; (2), defining a compiling method from assembler program to machine code program, said compiling method is correspondent to said curtomer identification information; and (3), according to customer identification information said program executor can interpret and execute customer's machine code program, and said interpretation method is matched with the above-mentioned compiling method.
Description
Technical field
The present invention relates to a kind of guard method of the program information to program actuator; applicable to the program actuator that is commonly referred to as microcontroller (MCU), microprocessor (μ P or MPU), digital signal processor (DSP), central processing unit (CPU), graphic process unit (GPU), and the embedded program actuator that is used for SOC (system on a chip) (System On Chip).
Background technology
Present various program actuator has obtained widely using, as microcontroller (MCU), microprocessor (μ P or MPU), digital signal processor (DSP), central processing unit (CPU), graphic process unit (GPU) and the embedded microprocessor that is used for SOC (system on a chip) (System On Chip).Usually in the application of these program actuators, need utilize non-volatile storer such as mask ROM (Mask ROM), programmable read-only memory (prom), disposable programmable ROM (read-only memory) (OTP ROM), electrically-erasable ROM (read-only memory) (EEPROM), flash memory (Flash) or disk, CD, tape to wait to deposit the program information of the binary machine code form that program actuator reads.The advantage that non-volatile storer is deposited machine code program is that these information can long preservation under the situation of power down and do not lose.
Fig. 1 shows the flow process of client's development sequence on program actuator in the prior art.See also Fig. 1, S11: the client obtains program actuator from chip manufacturer or suppliers; S12: client's written program source code on computers is compiled into the binary machine code program in computing machine, and this source code can be assembly code or c program code etc.; S13: the client writes the binary machine code program in the nonvolatile memory of said procedure actuator, and this nonvolatile memory can design at the program actuator chip internal, also can be arranged on outer and this actuator electric connection of sheet.Through above-mentioned steps, the binary machine code program just can be on program actuator trouble-free operation.Then referring to Fig. 2 A and Fig. 2 B, flow process shown in Figure 1 illustrates with the form of block diagram.Wherein Fig. 2 A shows the structure of block diagram of CLIENT PROGRAM reservoir designs in sheet, and Fig. 2 B shows the structure of block diagram of CLIENT PROGRAM reservoir designs outside sheet.Shown in Fig. 2 A, the compiler 21 on the computing machine is compiled into the binary machine code program with source code, and this machine code program is written to the CLIENT PROGRAM storer 22A that is arranged in chip 23A sheet.Chip 23A moves the machine code program among this storer 22A.Similarly, shown in Fig. 2 B, source code is written to the storer 22B that is arranged in outside the chip 23B and electrically connects with it after compiler 21 is compiled into the binary machine code program.Chip 23B moves the machine code program among this storer 22B.
But, no matter the nonvolatile memory design is in sheet or outside the sheet, final (as the silicon chip) that always is implemented on certain physical material, so any technician with background of related can both read the program information of depositing in the nonvolatile memory by the method for some physics or chemistry with lower cost.For convenience, hereinafter the person of attempting to read program information in other people the program actuator product under the situation of not being authorized is the cracker.
If the cracker reads the binary machine code program that is stored among storer 22A or the 22B (shown in Fig. 2 A or Fig. 2 B), can realize imitated fast by purchasing identical program actuator and writing this binary machine code program.And, conversion regime between the binary machine code instruction set of assembly instruction collection and this program actuator is open and general, therefore the cracker can also obtain corresponding assembly code by dis-assembling client's binary machine code program, thereby the design philosophy and the algorithm of the program of acquisition also can further improve program on this basis.
For this reason; people have developed a lot of guard methods to machine code program information, and the guiding theory of these methods all is to adopt various means to prevent that the binary machine code program is read out or strengthens the cracker and reads binary machine code procedure time and cost from storer 22A or 22B (shown in Fig. 2 A or Fig. 2 B).For example, encrypted bits protection is set, after storer writes the binary machine code program, enables encrypted bits and be read out finishing to prevent information.A simple method can make this protection mechanism lose efficacy: the cracker can open the integrated circuit encapsulation, uses some specific method (as focused ion beam (FIB)) control encrypted bits signal then, thereby reaches the purpose that reads the binary machine code program.Therefore, adopt that the method for encrypted bits increases to crack cost little, prevent that the effect that cracks is general.
Summary of the invention
The objective of the invention is to address the above problem; a kind of guard method of the program information to program actuator is provided; it does not rely on the program information that prevents the client and is read out; increased to a great extent and cracked cost; also prolonged the required time of cracking greatly, can prevent effectively that client's program information from being cracked easily under the situation that breaks away from manufacturer and client control.
Technical scheme of the present invention is: a kind of guard method of the program information to program actuator; be used for breaking away from the program information of protecting the client to develop under the situation of manufacturer and client's control based on described program actuator at described program actuator; wherein, described guard method comprises:
(1) in described program actuator, sets up customer identification zone, store corresponding different clients' subscriber identity information in the described customer identification zone, and guarantee that by technological means any client can't write other clients' subscriber identity information in customer identification zone;
(2) described subscriber identity information is determined a kind ofly with it one to one by the Compilation Method of assembly routine to machine code program, and this Compilation Method need not disclose, and can only be grasped by manufacturer and corresponding client;
(3) client's machine code program is explained and carried out to described program actuator according to subscriber identity information, and the coupling of the Compilation Method in described interpretation procedure and the step (2), and similarly, this interpretation procedure also need not disclose, and can only be grasped by manufacturer and corresponding client.
The guard method of above-mentioned program information to program actuator; wherein; in the step (1), described technological means is meant that described customer identification zone adopts the disposable programmable ROM (read-only memory) to realize, presets client's corresponding client identification information by manufacturer in described customer identification zone.
The guard method of above-mentioned program information to program actuator; wherein; in the step (1); described technological means is meant; at first offer client's corresponding client sign config. number by manufacturer; import this customer ID config. number to program actuator voluntarily by the client again, described customer ID config. number generates subscriber identity information and deposits described customer identification zone in after program actuator is handled.The particular content of this processing capacity need not be openly can only be grasped by manufacturer, and the customer ID config. number that offers each client can only be grasped by manufacturer and corresponding client.
The guard method of above-mentioned program information to program actuator; wherein; described processing capacity comprises the difficulty that the combination of the verification, computing or the verification that possess certain complexity and computing cracks with increase, and realizes that the main body of this processing capacity can be a hardware circuit or embedded one section program or their combination newly-increased in program actuator.
The guard method of above-mentioned program information to program actuator; wherein; in the step (2); described Compilation Method is meant the method that is generated machine code program by the assembly routine of client development; if what the design of client's original program was adopted is high level language, then need converts thereof into assembly routine earlier and compile again and obtain machine code program.
The guard method of above-mentioned program information to program actuator; wherein; in the step (3); described program actuator has the unified internal machine code instruction collection of a cover; described interpretation procedure is at first to convert client's machine code program to meet internal machine code instruction collection binary machine code program according to subscriber identity information, and program actuator is carried out described binary machine code program according to this internal machine code instruction collection then.
The guard method of above-mentioned program information to program actuator, wherein, the transfer process of described machine code program realizes that by a newly-increased decoding scheme described decoding scheme shows different decoding functions according to different subscriber identity information.The particular content of described decoding scheme is only grasped by manufacturer.
The guard method of above-mentioned program information to program actuator; wherein; in the step (3); described program actuator has many cover machine code instruction collection; every cover machine code instruction set pair is answered a subscriber identity information; described program actuator is selected corresponding machine code instruction collection according to subscriber identity information, releases and carry out client's machine code program according to this machine code instruction collected explanations or commentaries then.
The guard method of above-mentioned program information to program actuator, wherein, described Compilation Method and interpretation procedure are static, compiling and the behavior of explaining do not change over time.
The guard method of above-mentioned program information to program actuator, wherein, described Compilation Method and interpretation procedure are dynamic, compiling is different with the behavior of explaining under different conditions.
The present invention contrasts prior art following beneficial effect: the present invention controls the compiling and the interpretive mode of binary machine code program by subscriber identity information.Even the cracker reads subscriber identity information and binary machine code program, owing to can't write other people subscriber identity information, therefore can't obtain to carry out the program actuator of this machine code program to program actuator, also can not realize imitated fast.Again owing to can't obtain compiling corresponding or interpretation procedure with subscriber identity information, therefore also can't understand these machine code programs or machine code program is carried out dis-assembling, thereby can't obtain other people design philosophy and algorithm, also can not improve certainly this machine code program.
Description of drawings
Fig. 1 is the process flow diagram of the client development program of prior art.
Fig. 2 A is the block diagram of an embodiment of client development program of prior art.
Fig. 2 B is the block diagram of another embodiment of client development program of prior art.
Fig. 3 is the process flow diagram of an embodiment of client development program among the present invention.
Fig. 4 be embodiment illustrated in fig. 3 in the logical circuitry of a decoding scheme embodiment.
Fig. 5 is the process flow diagram of another embodiment of client development program among the present invention.
Fig. 6 be embodiment illustrated in fig. 5 in the logical circuitry of a decoding scheme embodiment.
Fig. 7 is the logical circuitry of decoding scheme one embodiment of on-the-flier compiler and explanation.
Embodiment
The invention will be further described below in conjunction with drawings and Examples.
Fig. 3 shows a kind of simple scheme that has adopted program actuator of the present invention and the client flow process at an embodiment of the enterprising line program exploitation of this program actuator platform.This scheme is a newly-increased block decoding circuit on the basis of existing program actuator, and it will give program actuator after the machine code program decoding from the CLIENT PROGRAM storer again.Below in conjunction with Fig. 3 this flow process is described in detail.
Step S31: client A obtains program actuator from manufacturer or supplier, and the customer identification zone of this program actuator is not configured, and promptly customer identification zone is a default value.Program actuator has increased a hardware circuit newly, and the function of this hardware circuit is only grasped by manufacturer, and its output terminal connects the input end of customer identification zone.Simultaneously offer client A corresponding client sign config. number by manufacturer, this customer ID config. number has uniqueness and manufacturer is only arranged and client A knows.Client A writes this customer ID config. number to program actuator after taking program actuator, this customer ID config. number by described newly-increased hardware circuit verification and computing after form subscriber identity information and be stored in the customer identification zone.Wherein customer ID config. number and subscriber identity information can be binary strings, and the arithmetic operation of described hardware circuit is based on the bit arithmetic of binary string, can be the negate computing, with exclusive disjunction, rearrangement etc.Because the information of customer identification zone can only be imported modification by described hardware circuit, and the function of hardware circuit is maintained secrecy, the customer ID config. number also only has manufacturer and client just to know, so even the cracker reads the subscriber identity information on the customer identification zone, but owing to do not know the function of described hardware circuit, the corresponding client of just can't retrodicting out sign config. number also just can't write the subscriber identity information of wanting to the customer identification zone of program actuator.For instance, the customer ID config. number that manufacturer distributes to client A is " 1010 ", client A inputs to hardware circuit with this identification number, the function of this hardware circuit is output after repeating 6 times again after the binary string first and last position exchange that will import, so this decoding scheme converts subscriber identity information " 001100110011001100110011 " to " 1010 " and deposits in the customer identification zone of client A.
Should be understood that above-mentioned hardware circuit is not necessary, carry out one section program by program actuator, the function of this program is identical with the function of above-mentioned hardware circuit, also can play the effect that the customer ID config. number is converted to subscriber identity information.Perhaps a hardware circuit and a suite are got up to realize same function.As long as can play the implementation method of same function, all should be included in protection scope of the present invention.
Step S32: the program's source code that client A develops on computers is compiled into the binary machine code program in computing machine.In general, the program's source code of client A exploitation is senior procedural language codes such as assembly code or c program code.Assembly code is based on that the assembly instruction collection writes, and these assembly instructions concentrate and comprise instructions such as ADD commonly used, MOV, LOAD.But machine itself can't be discerned these assembly instructions, and machine can only be discerned the binary sequence of forming by 0 and 1, also is the binary machine code instruction.So to a certain program actuator, have the corresponding relation of assembly instruction collection and binary machine code instruction set,, assembly code can be converted to the binary machine code that machine can be discerned according to this corresponding relation.Such as, in 8086 chips, its binary command form is 16, an assembly statement " MOV AX, BX " is interpreted into the binary code of " 1000101111000011 ".If program's source code is an assembly code, then, convert assembly code to binary machine code on computers according to the corresponding relation between assembly instruction collection and the intrinsic BINARY machine code instruction collection.If program's source code is the code of C language or other language compilation, then need be compiled into assembly code earlier, convert assembly code to binary machine code again.This step belongs to prior art, is the same with the step S12 of Fig. 1.
Step S33: determine a kind of conversion regime according to the subscriber identity information of client A, with this conversion regime with previous step rapid in original binary machine code program convert the binary machine code program of client A to.The decoding function of decoding scheme inverse process each other among this conversion regime and the step S35.This conversion regime of step S33 is a kind of corresponding relation of the binary machine code of binary machine code original among the step S31 and client A.Still the subscriber identity information " 001100110011001100110011 " with client A among the step S31 is an example, and this subscriber identity information explanation is in step S35, and the interpretation procedure of program actuator is the front two negate of elder generation with the binary program sign indicating number of client A.Significantly, it is contrary handles is front two negate with original binary machine code, so corresponding conversion regime also is that front two negate with original binary machine code is to generate the binary machine code of client A in this step.Be example still, behind step S32, be interpreted into the binary code of " 1000101111000011 ", after above-mentioned conversion regime conversion, generate the binary code of " 0100101111000011 " with assembly statement " MOV AX, BX ".Here, conversion regime is that manufacturer offers client A and secret by manufacturer and client A, can be a kind of text description to this conversion regime, also can be the corresponding tables of two kinds of binary machine codes, also this conversion regime can be embodied as a program module.Client A during the conversion binary machine code, can also can use the said procedure module to change automatically according to the text description of above-mentioned conversion regime or corresponding tables manual switch in software of two kinds of binary machine codes on computers.Not should be understood that and should concrete conversion method be limited.
Step S34: be converted to the exclusive binary machine code program of client A and be written in the nonvolatile memory of program actuator, this nonvolatile memory can design in the sheet of program actuator chip, also can be arranged on outer and this actuator electric connection of sheet.Generally speaking, this nonvolatile memory is ROM (read-only memory) (ROM).This step also is a prior art, is identical with step S13 among Fig. 1.Through above-mentioned conversion means,, also can't realize imitated fast or dis-assembling becomes assembly code even the cracker has read the binary machine code program of the client A that is stored among the ROM.Because being stored in the binary machine code program of the client A among the ROM crosses through step S33 conversion process, machine code instruction collection in it and the ordinary procedure actuator is also incompatible, also promptly can not be discerned by common program actuator, so even the cracker removes the program actuator of the same model of buying on the market, owing to lacked the interpreter operation corresponding with conversion operations, also just can't move this binary machine code program, so can not realize imitated fast.Again because conversion regime is that client A is exclusive, binary machine code after the conversion and the corresponding relation between the assembly code have not been original corresponding relations, the cracker can't convert binary machine code to assembly code by dis-assembling under the situation that can't know this conversion regime.So the cracker can't be known the design philosophy and the algorithm of program, program is improved also just do not known where to begin.
Step S35: be converted to the exclusive binary machine code of client A and convert original binary machine code to through a decoding scheme.The transfer process of this step and step S33 is reciprocal.It all is the same giving the decoding scheme of all clients' program actuator, but different this decoding schemes of subscriber identity information may command shows different decoding functions.As mentioned above, the binary machine code after step S33 conversion and the internal machine code instruction collection of program actuator can't be compatible, can not be discerned by it.Decoding scheme by the subscriber identity information of client A be configured to function for the binary machine code that client A is exclusive convert to once more originally can with the binary machine code of the internal machine code instruction collection compatibility of program actuator.Still the subscriber identity information with above-mentioned client A is an example, assembly statement " MOV AX; BX " becomes the binary machine code of " 0100101111000011 " after the compiling conversion, but this binary machine code can't be discerned by program actuator, decoding scheme is configured to front two negate with binary machine code according to the subscriber identity information of client A, therefore through decoding scheme, binary machine code converts " 1000101111000011 " again to, and this just can be discerned by program actuator.Program actuator can carry out correct operation according to this binary machine code: the value among the register BX is moved among the register AX.
Decoding scheme is realized its specific function with logic circuit device, is example with above-mentioned this function of front two negate with binary machine code, the implementation of this decoding scheme frame of broken lines as shown in Figure 4.Even on the data line of preceding two positions (bit) of program actuator 42, reverser 43A, a 43B are set respectively at ROM 41, do not establish any device on remaining position datawire and directly connect ROM 41 and program actuator 42.Certainly, actual decoding scheme does not have only a kind of design, as long as reach required decoding function, all is included in the claim scope of the present invention.
Fig. 5 shows another program of having adopted program actuator of the present invention and the client flow process at another embodiment of the enterprising line program exploitation of this program actuator platform.Below in conjunction with Fig. 5 this flow process is described in detail.
Step S51: this step is identical with step S31 embodiment illustrated in fig. 3.Just no longer be repeated in this description at this.For instance, the customer ID config. number that manufacturer distributes to client B is " 1101 ", client B inputs to hardware circuit with this customer ID config. number, and this hardware circuit converts subscriber identity information " 110111011101110111011101 " to " 1101 " and deposits in the customer identification zone.
Step S52: the storehouse of designing corresponding relation between a storage assembly code and the binary machine code, contain many tables in this storehouse, wherein every corresponding client's of table subscriber identity information is stored the corresponding relation between assembly instruction collection and the peculiar binary machine code instruction set of this client.This storehouse can be designed to the interpretive routine of an assembly code, is used for replacing original assembly code interpretive routine.For instance, client B has the table of corresponding relation between an assembly instruction collection and the binary machine code instruction set, the subscriber identity information of client B " 110111011101110111011101 " is meant two exchanges in end with binary machine code, therefore assembly statement " MOV CL, 55H " is interpreted into the binary code of " 1011000101010110 " in this table in table.
Step S53: during the program's source code compiling, source code is compiled into binary machine code with the pairing compile mode of the subscriber identity information of customer identification zone.With client B is example, uses above-mentioned new assembly code interpretive routine compiling source code, in compilation process, finds that table of client B correspondence, and assembly statement " MOV CL, 55H " is become the binary code of " 1011000101010110 " by direct compilation.In fact finished the process of binary code conversion this moment, it and difference embodiment illustrated in fig. 3 are, the embodiment of Fig. 3 can be compiled into " MOV CL; 55H " earlier the binary code of general " 1011000101010101 ", and the mode according to two exchanges in end converts " 1011000101010110 " to then; And present embodiment has changed the mode of compiling, directly the conversion regime with two exchanges in end is embedded in the compilation process, also promptly using compiler that " MOV CL, 55H " this assembly statement is compiled the binary machine code that the back has just directly formed " 1011000101010110 ".
Step S54: compiled in the nonvolatile memory that becomes the binary machine code of client B write-in program actuator.
Step S55: compiled the binary machine code that becomes client B and in program actuator, explained execution.Be that with difference embodiment illustrated in fig. 3 program actuator in the present embodiment has a plurality of instruction set, wherein the corresponding client's of each instruction set subscriber identity information.Program actuator is chosen corresponding instruction set and is carried out according to client's subscriber identity information.With client B is example, and program actuator is according to the subscriber identity information of client B, chooses after the instruction set of corresponding client B the directly binary machine code program of operation client B.
Should be understood that step S55 also can adopt the step S35 of Fig. 3 embodiment to realize, promptly increase a decoding scheme two exchanges in end of binary code.Decoding scheme is realized its specific function with logic circuit device, and exchanging this function with above-mentioned two at end with binary code is example, the implementation of this decoding scheme frame of broken lines as shown in Figure 6.At ROM 61 module 62 that two signals are exchanged is set on two (bit) data lines in the end of program actuator 63 even, does not establish any device on remaining position datawire and directly connect ROM 61 and program actuator 63.Wherein position datawire 64 is connected on the input port A of module 62, and position datawire 65 is connected on the input port B of module 62, after module 62 is handled, and the signal that delivery outlet C output input port B receives, and the signal that delivery outlet D output input port A receives.Certainly, actual decoding scheme does not have only a kind of design, as long as reach required decoding function, all is included in the claim scope of the present invention.
Among above-mentioned two embodiment, compiling and the mode of explaining all are static.That is to say, in compiling and interpretive mode, any condition can be set, for same client, same assembly statement is converted to same binary machine code by compiling at any time, conversely, the binary machine code that converts of same compiling is at any time also carried out into same behavior by explanation.In order to increase the cost that cracks, improve the complexity that cracks, also the mode that can compile and explain is set to dynamically.What is called dynamically is meant: a condition can be set, under different conditions, carry out different compilings and interpreter operation.For instance, the subscriber identity information of client C is " 110000001100110011011000 ", the interpretation method that this subscriber identity information is represented is as follows: in 1000 instructions before to the front two negate of binary code, in ensuing 1000 instructions,, repeat said process then to two exchanges in end of binary code.The logic realization of this decoding scheme is shown in the frame of broken lines of Fig. 7.ROM 71 is link block 72 and 73 respectively, and wherein module 72 can realize the front two negate with binary code, and module 73 can realize two exchanges in end with binary code.Module 72 is connected a selector switch 74 with 73.Selector switch 74 has a selecting side Sel to receive a control signal, output terminal linker actuator 75.Selector switch 74 selects signal on one of them input port as output according to different control signals.In this example, control signal is meant that whether satisfying 1000 instructions has expired this condition.Certainly, in compilation process, also to use corresponding dynamic approach.Should be understood that dynamic approach described here at aforesaid static method, can be applied to also can be applied among the embodiment shown in Figure 5 among the embodiment shown in Figure 3.
Should also be understood that for the step S31 of Fig. 3 embodiment and step S51 embodiment illustrated in fig. 5, can also adopt another kind of mode to realize.Manufacturer just writes client's corresponding client identification information according to customer information in advance in customer identification zone before program actuator dispatches from the factory, this customer identification zone adopts disposable programmable ROM (read-only memory) (OTP ROM) to realize.That is to say that in a single day program actuator dispatches from the factory, its inner customer identification zone just can't be erasable.
Crack difficulty in order further to increase, aforesaid the invention process method can also make improvements at following 3.First point: the mixed design of the circuit of decoding scheme and program actuator itself can be in the same place, make the cracker be difficult to obtain decoding scheme like this, thereby can't learn the compiling and interpreting mode that the client is exclusive.Second point: decoding scheme should possess certain complexity, makes the cracker be difficult to guess the function of decoding scheme.Such as, earlier will from the binary message of customer identification zone do the rearrangement and some mathematical operations after, then according to operation result to do from the machine code instruction of CLIENT PROGRAM storer the rearrangement and the part negate, the result who obtains exports to program actuator.For instance, be the binary string of " 110011001100110011001101 ", associate this compiling conversion regime easily and be two exchanges in end binary machine code if the cracker reads subscriber identity information.If subscriber identity information is also carried out conversion process, resequenced or do some logical operations in each position of this binary string, become a new binary string, according to this result client's machine code instruction is handled again.Even the cracker has read the subscriber identity information binary string, also can't therefrom easily obtain the information of the exclusive conversion regime of client.Thirdly: should possess certain complexity to the processing capacity of subscriber identity information by the customer ID config. number.The customer ID config. number can be longer, and add check code.To the customer ID config. number of program actuator input will through verification by after resequence again and some logical operations after export to customer identification zone again.
Should be understood that of the present invention focusing on compiles with the exclusive compile mode of client by handling the binary machine code will be stored on the CLIENT PROGRAM storer, also can't copy with dis-assembling fast and become source code even make the cracker obtain these machine codes.The above-mentioned concrete instruction of mentioning, concrete compiling and interpreting mode, the specific implementation of decoding scheme etc. are only as example, are not used for limiting the present invention.
The foregoing description provides to those of ordinary skills and realizes or use of the present invention; those of ordinary skills can be under the situation that does not break away from invention thought of the present invention; the foregoing description is made various modifications or variation; thereby protection scope of the present invention do not limit by the foregoing description, and should be the maximum magnitude that meets the inventive features that claims mention.
Claims (10)
1 one kinds of guard methods to the program information of program actuator are used for breaking away from the program information of protecting the client to develop based on described program actuator under the situation of manufacturer and client's control at described program actuator, it is characterized in that described guard method comprises:
(1) in described program actuator, sets up customer identification zone, store corresponding different clients' subscriber identity information in the described customer identification zone, and guarantee that by technological means any client can't write other clients' subscriber identity information in customer identification zone;
(2) described subscriber identity information is determined a kind of with it one to one by the Compilation Method of assembly routine to machine code program;
(3) client's machine code program is explained and carried out to described program actuator according to subscriber identity information, and the coupling of the Compilation Method in described interpretation procedure and the step (2).
The guard method of 2 program informations to program actuator according to claim 1; it is characterized in that; in the step (1); described technological means is meant that described customer identification zone adopts the disposable programmable ROM (read-only memory) to realize, presets client's corresponding client identification information by manufacturer in described customer identification zone.
The guard method of 3 program informations to program actuator according to claim 1; it is characterized in that; in the step (1); described technological means is meant; at first offer client's corresponding client sign config. number by manufacturer; import this customer ID config. number to program actuator voluntarily by the client again, described customer ID config. number generates subscriber identity information and deposits described customer identification zone in after program actuator is handled.
The guard method of 4 program informations to program actuator according to claim 3; it is characterized in that; described processing capacity comprises the difficulty that the combination of the verification, computing or the verification that possess certain complexity and computing cracks with increase, and realizes that the main body of this processing capacity can be a hardware circuit or embedded one section program or their combination newly-increased in program actuator.
The guard method of 5 program informations to program actuator according to claim 1; it is characterized in that; in the step (2); described Compilation Method is meant the method that is generated machine code program by the assembly routine of client development; if what the design of client's original program was adopted is high level language, then need converts thereof into assembly routine earlier and compile again and obtain machine code program.
The guard method of 6 program informations to program actuator according to claim 1; it is characterized in that; in the step (3); described program actuator has the unified internal machine code instruction collection of a cover; described interpretation procedure is at first to convert client's machine code program to meet internal machine code instruction collection binary machine code program according to subscriber identity information, and program actuator is carried out described binary machine code program according to this internal machine code instruction collection then.
The guard method of 7 program informations to program actuator according to claim 6; it is characterized in that; the transfer process of described machine code program realizes that by a newly-increased decoding scheme described decoding scheme shows different decoding functions according to different subscriber identity information.
The guard method of 8 program informations to program actuator according to claim 1; it is characterized in that; in the step (3); described program actuator has many cover machine code instruction collection; every cover machine code instruction set pair is answered a subscriber identity information; described program actuator is selected corresponding machine code instruction collection according to subscriber identity information, releases and carry out client's machine code program according to this machine code instruction collected explanations or commentaries then.
The guard method of 9 program informations to program actuator according to claim 1 is characterized in that described Compilation Method and interpretation procedure are static, and compiling and the behavior of explaining do not change over time.
The guard method of 10 program informations to program actuator according to claim 1 is characterized in that, described Compilation Method and interpretation procedure are dynamic, and compiling is different with the behavior of explaining under different conditions.
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 200610026054 CN1862557A (en) | 2006-04-26 | 2006-04-26 | Method for protecting program information of program executive device |
| PCT/CN2006/000957 WO2007121616A1 (en) | 2006-04-26 | 2006-05-15 | A method for protecting the program information of a program processor |
| CNB2006101628761A CN100446023C (en) | 2006-04-26 | 2006-11-27 | Method for protecting program information of program actuator |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN 200610026054 CN1862557A (en) | 2006-04-26 | 2006-04-26 | Method for protecting program information of program executive device |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN1862557A true CN1862557A (en) | 2006-11-15 |
Family
ID=37389983
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN 200610026054 Pending CN1862557A (en) | 2006-04-26 | 2006-04-26 | Method for protecting program information of program executive device |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN1862557A (en) |
| WO (1) | WO2007121616A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101944042A (en) * | 2010-09-01 | 2011-01-12 | 深圳市拜特科技股份有限公司 | Operation method of Java program and electronic terminal |
| CN117473467A (en) * | 2023-10-27 | 2024-01-30 | 广东技术师范大学 | A .Net platform code protection and operation method based on dynamic methods |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030084332A1 (en) * | 2001-10-26 | 2003-05-01 | Koninklijke Philips Electronics N.V. | Method for binding a software data domain to specific hardware |
| GB2405958A (en) * | 2003-08-20 | 2005-03-16 | Macrovision Europ Ltd | Code obfuscation and controlling a processor by emulation |
| CN1251065C (en) * | 2003-11-21 | 2006-04-12 | 苏州国芯科技有限公司 | Flushbonding CPU for information safety |
-
2006
- 2006-04-26 CN CN 200610026054 patent/CN1862557A/en active Pending
- 2006-05-15 WO PCT/CN2006/000957 patent/WO2007121616A1/en not_active Ceased
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101944042A (en) * | 2010-09-01 | 2011-01-12 | 深圳市拜特科技股份有限公司 | Operation method of Java program and electronic terminal |
| CN117473467A (en) * | 2023-10-27 | 2024-01-30 | 广东技术师范大学 | A .Net platform code protection and operation method based on dynamic methods |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2007121616A1 (en) | 2007-11-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111563742B (en) | Fuzzy testing method for intelligent contract transaction sequence dependence vulnerability variation | |
| CN1079968C (en) | Data exchange system comprising portable data processing units | |
| CN1154071C (en) | Data processing unit and data exchange system comprising same | |
| CN1113284C (en) | Electronic data processing device and system | |
| CN105303104A (en) | Dynamic execution prevention to inhibit return-oriented programming | |
| CN1781117A (en) | Data processing method | |
| WO2001014953A1 (en) | Software code protection by obscuring its data-driven form | |
| CN106682460B (en) | It is a kind of based on the Code obfuscation method converted twice | |
| CN104102860A (en) | Protecting method and running method and device and system for Android platform application program | |
| CN117688622A (en) | Trusted computing chip based on blockchain | |
| US20080320452A1 (en) | Software diversity using context-free grammar transformations | |
| CN111475152A (en) | A code processing method and device | |
| CN1137670A (en) | Software coding, decoding method and software coding, decoding system | |
| CN1577292A (en) | Memory control chip and data memory control method | |
| CN110060158A (en) | Intelligent contract based on variable-length encoding executes method and apparatus | |
| KR100411684B1 (en) | Method for the cryptographic conversion of binary data blocks | |
| CN1862557A (en) | Method for protecting program information of program executive device | |
| HU227781B1 (en) | Symmetric key cryptographic apparatus and method for encryption and decryption of information | |
| US20090327709A1 (en) | Memory address obfuscation | |
| CN100446023C (en) | Method for protecting program information of program actuator | |
| CN115510402A (en) | License control method and system based on encryption and code confusion | |
| CN1469470A (en) | Control system for protecting external program code | |
| US10747711B2 (en) | Dynamic hybridized positional notation instruction set computer architecture to enhance security | |
| Murawski et al. | Idealized algol with ground recursion, and DPDA equivalence | |
| CN111291333A (en) | Java application program encryption method and device |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
| WD01 | Invention patent application deemed withdrawn after publication |