Software Dynamic Translation Anti-Tampering Virtual Machine

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software protection methods face challenges in effectively preventing tampering and reverse engineering, as they often result in high overhead, require specialized hardware, or provide incomplete solutions that are not suitable for modern hardware threats.

Innovation Solution

The use of software dynamic translation and virtual machine technology to apply continuous anti-tampering and obfuscation transforms, encrypting code, and periodically flushing the code cache to prevent information leakage, while allowing for low overhead execution and adjustable protection levels.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If code obfuscation is applied to protect software from static analysis, then it becomes more difficult for hackers to understand the code, but it provides no protection against dynamic analysis through multiple program runs

Engineering Contradiction:
Improvedifficulty of static analysisVSAvoidprotection effectiveness
Core Design Contradiction:
Difficulty of detecting and measuringVSReliability

Solution Approach 1:

The patent applies dynamic code transformation techniques where the code structure and behavior change during execution. Virtual machine instructions are transformed at runtime, making the code different in each execution cycle. This dynamic approach prevents attackers from gathering complete information through multiple runs, as the code appears different each time it executes, thereby providing protection against both static and dynamic analysis while maintaining execution efficiency.

Inventive Principle:
Principle #15Dynamics

2Reliability

If strong anti-tampering measures are implemented, then software protection is improved, but execution overhead becomes extremely high and unacceptable

Engineering Contradiction:
Improvesoftware protectionVSAvoidexecution overhead
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements selective code transformation where only critical code sections requiring protection are transformed through the virtual machine layer. Non-critical code paths execute natively without transformation overhead. This partial application of anti-tampering measures to only the necessary portions of code provides adequate protection while minimizing execution overhead and maintaining acceptable performance for the overall application.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If self-checking codes are added to monitor code modifications, then tampering detection is improved, but the code becomes more complex and easier to locate by malicious users

Engineering Contradiction:
Improvetampering detectionVSAvoidcode complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a virtual machine as an intermediary layer between the original code and the execution environment. The virtual machine instructions include embedded self-checking mechanisms that verify code integrity during execution. This intermediary approach allows tampering detection to be implemented without directly modifying the original code structure, thereby maintaining code simplicity while providing robust tampering detection capabilities through the virtual machine layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10176324B2System, method and computer program product for protecting software via continuous anti-tampering and obfuscation transforms
Publication Date: 2019.01.08 UNIV OF VIRGINIA PATENT FOUND
  • US10176324B2 patent drawing
  • US10176324B2 patent drawing
  • US10176324B2 patent drawing

AI summary

Method, system and computer program product for applying existing anti-tampering and obfuscation techniques to virtual machine technology and offers several distinct advantages. The anti-tampering and obfuscation transforms can be applied continuously to prevent adversaries from gaining information about the program through emulation or dynamic analysis. In addition, the encryption can be used to prevent hackers from gaining information using static attacks. The use of a virtual machine also allows for low overhead execution of the obfuscated binaries as well as finer adjustment of the amount of overhead that can be tolerated. In addition, more protection can be applied to specific portions of the application that can tolerate slowdown. The in-corporation of a virtual machine also makes it easy to extend the technology to integrate new developments and resistance mechanisms, leading to less development time, increased savings, and quicker deployment.