Method of securing printers against malicious software
AssigneeKonica Minolta Laboratory U.S.A., Inc.
InventorShaun Pinney
Life of this patent
Estimating the term…
Abstract
A method for securing a computer device against malicious code, the method including the steps of: executing a computer program on the computer device, the computer device having a central processing unit, which carries out instructions of the computer program, and wherein at least a portion of the computer program is executed by one or more tasks, each of the one or more tasks having a task stack associated therewith; and managing the central processing unit such that the central processing unit does not execute machine code from the task stacks associated with each of the one or more task so as to secure the computer device against malicious code from the task stack.
Claims19
A method for securing a computer device against malicious code, comprising:
- executing a computer program on the computer device, the computer device having a central processing unit, which carries out instructions of the computer program, and wherein at least a portion of the computer program is executed by one or more tasks, each of the one or more tasks having task stacks associated therewith;
- configuring a Memory Management Unit (MMU) associated with the central processing unit with addresses, which are not executable for each of the task stacks associated with the one or more tasks;
- receiving an executed portion of the computer program from a task stack associated with one of the one or more tasks;
- calculating a next instruction address for the received executed portion of the computer program;
- comparing the next instruction address to the addresses, which are not executable for each of the task stacks associated with the one or more tasks;
- and
- if the next instruction address is an address, which is not executable, preventing the execution of machine code at the next instruction address of the computer program.
A computer program product comprising a non-transitory computer usable medium having a computer readable code embodied therein for controlling a computer device, the computer readable program code configured to execute a process, the process comprising the steps of:
- executing a computer program on the computer device, the computer device having a central processing unit, which carries out instructions of the computer program, and wherein at least a portion of the computer program is executed by one or more tasks, each of the one or more tasks having task stacks associated therewith;
- configuring a Memory Management Unit (MMU) associated with the central processing unit with addresses, which are not executable for each of the task stacks associated with the one or more tasks;
- receiving an executed portion of the computer program from a task stack associated with one of the one or more tasks;
- calculating a next instruction address for the received executed portion of the computer program;
- comparing the next instruction address to the addresses, which are not executable for each of the task stacks associated with the one or more tasks;
- and
- if the next instruction address is an address, which is not executable, preventing the execution of machine code at the next instruction address of the computer program.
A computer device comprising:
- a central processing unit, which carries out instructions of a computer program, wherein at least a portion of the computer program is executed by one or more tasks, each of the one or more tasks having task stacks associated therewith, and wherein the central processing unit includes a Memory Management Unit (MMU) associated with the central processing unit, the MMU configured with addresses, which are not executable for each of the task stacks associated with the one or more tasks, the central processing unit performing the following steps:
- receiving an executed portion of the computer program from a task stack associated with one of the one or more tasks;
- calculating a next instruction address for the received executed portion of the computer program;
- comparing the next instruction address to the addresses, which are not executable for each of the task stacks associated with the one or more tasks;
- and
- if the next instruction address is an address, which is not executable, preventing the execution of machine code at the next instruction address of the computer program.
Dependencies are inferred from the claim text.