Encrypted Program Protection Domain for Static and Dynamic Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods fail to effectively protect a program's important logic or algorithm from both static and dynamic analysis tools, as anti-debugging and anti-dump functions are inadequate against static analysis, leading to potential leakage of sensitive information.

Innovation Solution

A device and method that encrypts critical program components into a protection domain, decrypts only when executed, and re-encrypts upon termination, using a protection domain unit with decryption and calling units to maintain an encrypted state, while storing frequently accessed domains to minimize performance impact.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the program is kept in encrypted state to protect from static analysis, then security is improved, but the program cannot be executed

Engineering Contradiction:
ImprovesecurityVSAvoidprogram execution
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent applies dynamics by making the protection domain's encryption state changeable - it is encrypted when not in use (protecting from static analysis) and decrypted when executed (enabling program operation). The state transitions between encrypted and decrypted based on execution status, resolving the contradiction between security and executability

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements periodic action through the cycle of encrypting the protection domain after execution and decrypting it before execution. This periodic encryption/decryption cycle ensures the domain is protected during storage and transmission but accessible when needed for execution, balancing security requirements with operational needs

Inventive Principle:
Principle #19Periodic action

2Ease of operation

If the protection domain is decrypted for execution, then program execution is enabled, but the program becomes vulnerable to analysis tools

Engineering Contradiction:
Improveprogram executionVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system dynamically controls the encryption state based on execution phase - decrypted during execution to enable operation, re-encrypted after execution to restore protection. This dynamic state management ensures the domain is vulnerable only during the minimal necessary time for execution

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent applies preliminary action by re-encrypting the protection domain immediately after execution completes. This ensures that as soon as the decrypted state serves its purpose, protective measures are reinstated before any potential analysis can occur, maintaining security proactively

Inventive Principle:
Principle #10Preliminary action

3Reliability

If frequent decryption and re-encryption is performed, then security is maintained, but system performance deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent changes the parameter of encryption state selectively - only encrypting/decrypting the specific protection domain that contains important logic, rather than the entire program. This targeted approach minimizes the computational overhead of encryption operations while maintaining security where needed

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9965621B2Program protection device
Publication Date: 2018.05.08 INKA ENTWORKS INC

AI summary

Disclosed is a device for protection a program.The device includes a protection domain unit including an encrypted protection domain, a start point display unit configured to display a start point of the encrypted protection domain, and an end point display unit configured to display an end point of the encrypted protection domain; and a protection domain connection unit including a decryption unit configured to generate a running code unit by decrypting the encrypted protection domain and a protection domain calling unit configured to call the running code unit.