Code Protection Module for Software Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for protecting software code, particularly in intermediate language form, are vulnerable to decompilation, forgery, and reverse engineering due to intrinsic characteristics of intermediate code, and existing encryption and protection mechanisms fail to prevent unauthorized modification and analysis.

Innovation Solution

A code protection method that couples application code with a protection module, selectively encrypts and decrypts code at execution time, and re-encrypts it periodically, making it difficult to execute or analyze without the protection module, and prevents direct access to library files by converting or deleting them and providing access through an encrypted protection module.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code is encrypted to prevent forgery and reverse engineering, then security is improved, but the electronic device cannot execute the encrypted file

Engineering Contradiction:
ImprovesecurityVSAvoidexecutability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The protection module is integrated into the application package in advance, establishing a trusted execution environment before the encrypted code needs to be executed. This preliminary setup allows the system to have both encryption for security and decryption capability for executability ready beforehand

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The protection module acts as an intermediary between the encrypted code and the processor. It receives the encrypted intermediate language code, decrypts it using embedded key material, and provides the decrypted code to the processor for execution, thus resolving the contradiction between encrypted storage and executable state

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a protection module is added to protect code, then security is improved, but the code can be forged by deleting the protection module

Engineering Contradiction:
ImprovesecurityVSAvoidpackage structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The protection module is merged with the application package as an integrated component rather than a separate external file. The module is embedded within the package structure itself, making it impossible to delete independently while maintaining the application's functionality

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The protection module is nested within the application package structure, with the encrypted code and protection module forming a hierarchical relationship where the protection module is contained within the package that it protects, creating a self-contained protected unit

Inventive Principle:
Principle #7Nested doll (Nesting)

3Reliability

If all code is protected with a protection module, then security is improved, but the complexity of the protection system increases

Engineering Contradiction:
ImprovesecurityVSAvoidprotection system complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Only specific portions of the code that require protection are encrypted and associated with the protection module, while other code remains in plain form. This selective approach provides security where needed without unnecessarily complicating the entire system

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The protection module uses a simplified decryption approach that decrypts code at execution time without requiring complex pre-processing or analysis of all code sections. This partial action on only the necessary code portions reduces overall system complexity

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10255443B2Method, apparatus, system and non-transitory computer readable medium for code protection
Publication Date: 2019.04.09 LY CORP
  • US10255443B2 patent drawing
  • US10255443B2 patent drawing
  • US10255443B2 patent drawing

AI summary

A code protection method may include storing, using a processor of a computer, a package file that includes files for an application on a storage device of the computer; transforming, at the processor, a protection target method and/or function selected from a file that includes an execution code among the files, or converting or deleting a library file among the files; regenerating the package file by adding, to the package file, a first protection module file for restoring the transformed protection target method and/or function or a second protection module file for restoring the library file; and providing the regenerated package file over a network.