Binding DRM Code to Host Application via Memory Page Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional digital rights management systems are vulnerable to memory dump attacks, where the protected executable can be easily separated from the wrapper code, allowing attackers to execute the host code directly and circumvent protection measures.

Innovation Solution

The proposed method tightly binds digital rights management executable code to the host application by identifying and relocating code blocks, adjusting memory references, and incorporating security checks, making it difficult for attackers to detach the wrapper code from the host code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If the protected executable is separated from the wrapper code, then it is easy to dump and distribute the host software, but the security protection is compromised

Engineering Contradiction:
Improveease of separating executable from wrapperVSAvoidsecurity protection
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent merges the wrapper code and host software into a single protected executable file, making them inseparable. The wrapper code is embedded within the executable and cannot be easily detached, preventing attackers from distributing unprotected host code while maintaining security protection throughout the software lifecycle

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If the host code is kept in plain memory during execution, then it can run normally, but it becomes vulnerable to memory dump attacks

Engineering Contradiction:
Improvenormal executionVSAvoidvulnerability to memory dump attacks
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent performs preliminary encryption of the host code before it is loaded into memory. The wrapper code decrypts and executes the host code in controlled segments during runtime, rather than loading the entire plain executable into memory at once. This preliminary encryption approach allows normal execution while preventing attackers from dumping unprotected code from memory

Inventive Principle:
Principle #10Preliminary action

3Productivity

If the wrapper code is removed or bypassed, then the host code can execute directly, but anti-tampering routines are never executed

Engineering Contradiction:
Improvedirect execution speedVSAvoidexecution of anti-tampering routines
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent combines the wrapper code and host software into a single inseparable executable unit. The anti-tampering routines are integrated within the protected executable structure, making it impossible to execute the host code without simultaneously executing the embedded wrapper and its security checks. This merging ensures that productivity is maintained while reliability through anti-tampering execution is preserved

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8458673B2Computer-implemented method and system for binding digital rights management executable code to a software application
Publication Date: 2013.06.04 FLEXERA SOFTWARE LLC
  • US8458673B2 patent drawing
  • US8458673B2 patent drawing
  • US8458673B2 patent drawing

AI summary

A computer-implemented method and system for binding digital rights management executable code to a software application are disclosed. The method and system include selecting a memory page of host application code, translating the contents of the selected memory page of host application code, saving the translated contents of the selected memory page into a stub code area, overwriting the selected memory page of host application code; removing host page permission for execution of code in the selected memory page of host application code, and emulating the translated contents of the selected memory page when an exception is raised as a result of attempted access to the selected memory page of host application code.