Obfuscated Code Encryption Using Breakpoint-Based Flow Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing code obfuscation methods are vulnerable to reverse engineering, allowing attackers to easily decipher and crack client codes, posing risks to system security.

Innovation Solution

A method that combines dynamic-debugging techniques with code obfuscation by replacing skipping instructions with breakpoint instructions, creating an encrypted file that requires dynamic decryption during execution, making it difficult for attackers to trace the original program flow.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code obfuscation is applied to protect software from decompilation and cracking, then intellectual property rights are protected, but the code becomes difficult to read and comprehend

Engineering Contradiction:
Improvesoftware protectionVSAvoidcode readability
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent applies dynamic code obfuscation by replacing skipping instructions with breakpoint instructions at runtime. The obfuscation level and method are adjusted dynamically based on whether debugging is detected, allowing the code to be readable during development but protected during deployment. This resolves the contradiction by making readability conditional rather than static.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the obfuscation parameters dynamically - specifically replacing skipping instructions with breakpoint instructions based on runtime conditions. The obfuscation intensity and method are modified according to the execution context, allowing the same code to have different readability levels in different scenarios, thus protecting IP while maintaining usability.

Inventive Principle:
Principle #35Parameter changes

2Ease of operation

If general analyzing means are used to obtain the original flow from obfuscated code, then code analysis is simple, but the original flow can be easily cracked

Engineering Contradiction:
Improvecode analysisVSAvoidsecurity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies preliminary anti-action by pre-replacing skipping instructions with breakpoint instructions before code execution. This prevents attackers from using general analyzing means to easily obtain the original flow, as the control flow has already been obscured. The anti-obfuscation measure is built in advance, making security the default state while analysis requires specialized debugging techniques.

Inventive Principle:
Principle #9Preliminary anti-action

3Reliability

If skipping instructions are replaced with breakpoint instructions to prevent easy cracking, then security is enhanced, but the code execution becomes more complex

Engineering Contradiction:
ImprovesecurityVSAvoidcode execution
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies self-service by having the obfuscated code automatically manage its own execution through breakpoint instructions. The breakpoint instructions self-terminate and redirect control flow without requiring external intervention or complex decryption mechanisms. The code serves itself by embedding the obfuscation and de-obfuscation logic within the breakpoint handling, reducing overall system complexity while maintaining security.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS12505182B2Obfuscated code encryption method and apparatus, and device and readable storage
Publication Date: 2025.12.23 INSPUR SUZHOU INTELLIGENT TECH CO LTD
  • US12505182B2 patent drawing
  • US12505182B2 patent drawing
  • US12505182B2 patent drawing

AI summary

The present application discloses a method for encryption of obfuscation code, an apparatus, a device and a readable medium. The method for encryption of obfuscation code includes: obtaining position information of all of function codes in a to-be-encrypted program; based on the position information, determining, one by one, whether a skipping instruction exists in the corresponding function code; when a skipping instruction exists in one of the function codes, saving the skipping instruction and corresponding address information into a decryption datum body, and replacing the skipping instruction with a breakpoint instruction; and in response to execution of the preceding one step being completed for all of the function codes, based on the decryption datum body and an encrypted program obtained by replacing the instructions, generating an encrypted file.