Protection of a non-volatile memory by change of instructions
First Claim
Patent Images
1. A method, comprising:
- assigning rights of writing, reading, or execution to at least one area of a volatile memory, the at least one area being used to store instructions of at least one program, and the at least one area is a program execution stack;
associating, with the at least one area used to store instructions of the at least one program and assigned the rights of writing, reading, or execution, a first list of opcodes that are authorized or not authorized to be stored as content of the at least one area, the first list of opcodes being selected based on semantics of executed functions of the at least one program for which the at least one memory area is used;
in response to an attempt to store an opcode of an instruction in the at least one area of the volatile memory, determining, using at least one processor, whether the opcode of the instruction is indicated in the first list of opcodes as an opcode that is authorized to be stored in the at least one area of the volatile memory; and
performing, using the at least one processor, an action if it is determined that the first list of opcodes indicates that the opcode of the instruction is not authorized to be stored in the at least one area of the volatile memory.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for protecting a volatile memory against a virus, wherein: rights of writing, reading, or execution are assigned to certain areas of the memory; and a first list of opcodes authorized or forbidden as a content of the areas is associated with each of these areas.
15 Citations
20 Claims
-
1. A method, comprising:
-
assigning rights of writing, reading, or execution to at least one area of a volatile memory, the at least one area being used to store instructions of at least one program, and the at least one area is a program execution stack; associating, with the at least one area used to store instructions of the at least one program and assigned the rights of writing, reading, or execution, a first list of opcodes that are authorized or not authorized to be stored as content of the at least one area, the first list of opcodes being selected based on semantics of executed functions of the at least one program for which the at least one memory area is used; in response to an attempt to store an opcode of an instruction in the at least one area of the volatile memory, determining, using at least one processor, whether the opcode of the instruction is indicated in the first list of opcodes as an opcode that is authorized to be stored in the at least one area of the volatile memory; and performing, using the at least one processor, an action if it is determined that the first list of opcodes indicates that the opcode of the instruction is not authorized to be stored in the at least one area of the volatile memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An electronic circuit comprising:
-
a processor unit; and memory storing computer-executable instructions that, when executed by the processing unit, perform a method for protecting a volatile memory against a virus, the method comprising; assigning rights of writing, reading, or execution to at least one area of the volatile memory, wherein the at least one area is a program execution stack; associating, with the at least one area being used to store instructions of at least one program and assigned the rights of writing, reading, or execution, a first list of opcodes that are authorized or not authorized to be stored as content of the at least one area, the first list of opcodes being selected based on semantics of executed functions of the at least one program for which the at least one memory area is used; in response to an attempt to store an opcode of an instruction in the at least one area of the volatile memory, determining whether the opcode of the instruction is indicated in the first list of opcodes as an opcode that is authorized to be stored in the at least one area of the volatile memory; and allowing the opcode of the instruction to be stored in the at least one area of the volatile memory if it is determined that the first list of opcodes indicates that the opcode of the instruction is authorized to be stored in the at least one area of the volatile memory. - View Dependent Claims (11, 12, 13, 14, 15)
-
-
16. A system, comprising:
-
a processing unit; and volatile memory comprising at least one area being used to store instructions of at least one program, wherein the at least one area is a program execution stack, wherein; the at least one area being used to store instructions of the at least one program is associated with a first plurality of opcodes that are authorized or not authorized to be stored as content of the at least one area, the first plurality of opcodes being selected based on semantics of executed functions of the at least one program for which the at least one memory area is used; and the processing unit is configured to; in response to an attempt to store an opcode of an instruction in the at least one area of the volatile memory, determine whether the opcode of the instruction is indicated in the first list of opcodes as an opcode that is authorized to be stored in the at least one area of the volatile memory; and allow the opcode of the instruction to be stored in the at least one area of the volatile memory if it is determined that the first list of opcodes indicates that the opcode of the instruction is authorized to be stored in the at least one area of the volatile memory. - View Dependent Claims (17, 18, 19, 20)
-
Specification