Code Permutation for Malicious Software Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for preventing malicious software execution in computer systems are inadequate, as they can be bypassed by compression or encryption, and behavior blocking mechanisms often make sub-optimal decisions, allowing harmful programs to execute while blocking harmless ones.

Innovation Solution

A permutation is performed on a subset of instructions within an application program to create a permuted sequence, which is stored in a permuted instruction pointer table and executed in an execution module capable of translating it into machine code, ensuring that only cross-compiled code can be executed, thereby preventing unauthorized software execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If simple detection techniques such as scanning for a search string are used, then detection ease is improved, but detection reliability deteriorates because the process can be easily subverted by converting malicious code via compression or encryption

Engineering Contradiction:
Improvedetection easeVSAvoiddetection reliability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary action by performing code permutation and cross-compilation on application programs before they are executed in the insulated environment. This pre-transformation ensures that even if malicious code is present, it cannot execute harmful actions because it has already been transformed into a different instruction set that maintains functional equivalence but prevents direct malicious execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses an intermediary approach by introducing a cross-compiler and permutation mechanism as a mediator between the original application program and the insulated environment. The cross-compiler translates code from one instruction set to another, creating a layer of indirection that prevents direct execution of malicious code while preserving legitimate functionality through the translation layer

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If behavior blocking mechanisms are used to intercept malicious actions during program execution, then detection capability is improved, but false positive rate increases leading to sub-optimal blocking decisions where harmless programs are blocked while harmful programs are allowed to execute

Engineering Contradiction:
Improvedetection capabilityVSAvoidblocking decision accuracy
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent applies preliminary anti-action by preventing malicious code from executing harmful actions in the first place, rather than attempting to detect and block them during execution. By transforming the code through cross-compilation and permutation before execution in the insulated environment, the system proactively neutralizes potential malicious behavior before it can cause harm, eliminating the need for reactive blocking decisions

Inventive Principle:
Principle #9Preliminary anti-action

Solution Approach 2:

The patent segments the execution environment into an insulated sandbox that isolates application programs from the host system. This segmentation allows the system to execute transformed code in a controlled environment where even if malicious behavior occurs, it cannot affect the host system, thereby improving both detection capability and decision accuracy without risking false positives

Inventive Principle:
Principle #1Segmentation

3Reliability

If emulation is used to execute suspect code within an insulated environment, then system protection is improved, but the emulation environment itself becomes vulnerable to virus attacks and data infection leading to a break in isolation

Engineering Contradiction:
Improvesystem protectionVSAvoidvulnerability to virus attacks
Core Design Contradiction:
ReliabilityVSObject-affected harmful factors

Solution Approach 1:

The patent replaces the traditional emulation approach with a cross-compilation mechanism. Instead of emulating instructions in software, the system uses a cross-compiler to translate code from one instruction set to another, creating native machine code for the target architecture. This substitution eliminates the vulnerability inherent in software emulation while maintaining the ability to execute code in an insulated environment

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The patent applies preliminary action by performing cross-compilation and code transformation before execution, rather than relying on runtime emulation. This pre-processing step creates a transformed version of the code that is functionally equivalent but structurally different, preventing viruses from exploiting emulation vulnerabilities while maintaining system protection

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8041958B2Method for preventing malicious software from execution within a computer system
Publication Date: 2011.10.18 LENOVO SWITZERLAND INTERNATIONAL GMBH
  • US8041958B2 patent drawing
  • US8041958B2 patent drawing
  • US8041958B2 patent drawing

AI summary

A method for preventing malicious software from execution within a computer system is disclosed. A permutation is performed on a subset of instructions within an application program to yield a permuted sequence of instructions before any actual execution of the application program on the computer system. A permutation sequence number of the permuted sequence of instructions is stored in a permuted instruction pointer table. The permuted sequence of instructions is executed in an execution module that is capable of translating the permuted sequence of instructions to an actual machine code of a processor within the computer system according to the permutation sequence number of the permuted sequence of instructions stored in the permuted instruction pointer table.