Method for transforming and verifying downloaded program fragments with data type restrictions and corresponding system
AssigneeTrusted Logic
InventorXavier Leroy
Life of this patent
Estimating the term…
Loading patent…
AssigneeTrusted Logic
InventorXavier Leroy
Estimating the term…
A method and system for transforming and verifying downloaded programs fragments with data type restriction in an embedded system in which a program fragment being temporarily stored a verification process of the stored program fragment object code is executed instruction by instruction so as to discriminate for each instruction the existence of a target, a branching instruction target, a target of an exception handler call or a target of a subroutine call. On the occurrence of a target of a branching instruction as the current instruction, the empty status of the stack is verified and the program fragment is rejected otherwise. A verification process and updating of the effect of the current instruction on the data types of the type stack and the table of register types is performed. The verification process is successfully executed instruction by instruction until the table of register types is stable, with no modification being present, and interrupted with the program fragment being rejected otherwise.
A method of verifying a program fragment downloaded onto a reprogrammable embedded system, equipped with a rewritable memory, a microprocessor and a virtual machine equipped with an execution stack and with operand registers, said program fragment consisting of an object code and including at least one subprogram consisting of a series of instructions manipulating said operand registers, said microprocessor and virtual machine configured to interpret said object code, said embedded system being interconnected to a reader, wherein subsequent to a detection of a downloading command and a storage of said object code in said rewritable memory, said method, for each subprogram, comprises:
An embedded system which can be reprogrammed by downloading program fragments, said embedded system including a least one microprocessor, one random-access memory, one input/output module, one electrically reprogrammable nonvolatile memory and one permanent memory, an installed main program and a virtual machine adapted to execute said installed main program and at least one program fragment using said microprocessor, wherein said embedded system includes at least one verification program module to verify a downloaded program fragment in accordance with a process comprising:
A system for transforming an object code of a program fragment including a series of instructions, in which operands of each instruction belong to data types manipulated by said instruction, an execution stack does not exhibit any overflow phenomenon and for each branching instruction, the types of stack variables at said branching are identical to the types of stack variables at targets of this branching, and an operand, of given type, written to a register by an instruction of said object code is reread from the same register by another instruction of said object code with the same given data type, into a standardized object code for said program fragment, wherein said transforming system includes, at least, installed in a memory of a development computer or workstation, a program module for transforming said object code into a standardized object code in accordance with a process of transforming including for all instructions of said object code comprising:
A computer program product which is recorded on a computer readable storage medium and can be loaded directly from a terminal into an internal memory of a reprogrammable embedded system equipped with a microprocessor and a rewritable memory, said embedded system making it possible to download and temporarily store a program fragment consisting of an object code including a series of instructions, executable by said microprocessor by way of a virtual machine equipped with an execution stack and with operand registers manipulated via said instructions and making it possible to interpret said object code, said computer program product including portions of object code to execute at least one of steps of verifying a program fragment downloaded onto said embedded system according to a verifying process, said verifying process comprising:
A computer program product which is recorded on a computer readable storage medium including portions of object code to execute steps of a process of transforming an object code of a downloaded program fragment into a standardized object code for said program fragment, said process of transforming comprising:
A computer program product which is recorded on a computer readable storage medium and can be used in a reprogrammable embedded system, equipped with a microprocessor and a rewritable memory, said reprogrammable embedded system allowing to download a program fragment consisting of an object code, a series of instructions, executable by said microprocessor of said reprogrammable embedded system by means of a virtual machine equipped with an execution stack and with local variables or registers manipulated via instructions and making it possible to interpret said object code, said computer program product comprising:
Dependencies are inferred from the claim text.