Pseudo-Static Link Library Loader for Application Protection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application programs that use dynamic link libraries (DLLs) are vulnerable to reverse engineering, as their APIs are openly accessible, compromising intellectual property protection and making it difficult to maintain and update libraries without introducing new issues.

Innovation Solution

A method that converts a dynamic link library into a 'pseudo-static' link library, using a special loader to redirect API references and integrate additional security measures, effectively masking the DLL's presence and functionality within the application, similar to static libraries, while maintaining compatibility across development environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If dynamic link libraries (DLLs) are used to distribute libraries, then ease of operation and adaptability are improved, but protection against reverse engineering deteriorates as APIs become openly accessible

Engineering Contradiction:
Improveease of library distribution and usageVSAvoidvulnerability to reverse engineering
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent introduces a loader as an intermediary component that sits between the application and the DLL. The loader masks the actual DLL interfaces by providing a wrapper layer, preventing direct access to the original APIs while maintaining functional connectivity. This resolves the contradiction by enabling DLL usage for ease of operation while the loader intermediary protects against reverse engineering.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy or replica of the DLL interface through the loader. Instead of exposing the original DLL APIs directly, the loader implements a copied interface that mimics the original functionality but can be protected separately. This allows the application to operate with DLL-like ease while the copied interface can be protected against reverse engineering.

Inventive Principle:
Principle #26Copying

2Object-affected harmful factors

If static link libraries are used, then protection against reverse engineering is improved, but device complexity and ease of operation worsen due to separate installation requirements

Engineering Contradiction:
Improveprotection against reverse engineeringVSAvoidcomplexity of installation and distribution
Core Design Contradiction:
Object-affected harmful factorsVSDevice complexity

Solution Approach 1:

The patent merges the advantages of static and dynamic libraries by combining the protection mechanism of static libraries with the operational flexibility of dynamic libraries. The loader (which can be distributed with the application) combines with the DLL at runtime, creating a unified protected system that maintains the benefits of both approaches without their respective drawbacks.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the library system into two parts: the protected loader component that can be distributed with the application, and the separate DLL that provides dynamic functionality. This segmentation allows the critical interface layer to be protected while maintaining the operational advantages of dynamic libraries, reducing overall system complexity compared to full static linking.

Inventive Principle:
Principle #1Segmentation

3Loss of time

If multiple applications use the same dynamic library, then loss of time is reduced through shared resources, but loss of substance increases due to multiple copies requiring more disk space

Engineering Contradiction:
Improvetime efficiency through shared libraryVSAvoiddisk space consumption
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The loader is designed as a universal component that can work with multiple different DLLs. Instead of each application needing its own protected copy of the library, a single universal loader can load and protect different DLL instances, reducing disk space requirements while maintaining the time efficiency of shared library usage.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2663923B1Method for protecting an application program and related computer program product
Publication Date: 2019.09.18 WIBU SYST
  • EP2663923B1 patent drawingFigure 1
  • EP2663923B1 patent drawingFigure 2
  • EP2663923B1 patent drawingFigure 3

AI summary

A Method for protecting an application program executable on a computer against reverse engineering, said application is created to run with at least one selected dynamic link library (DLL) on said computer, comprises the steps of: removing the references from the application to the used dynamic link library to be run with; adding a specific library loader to the executable application program, said loader either contains or has access to said dynamic link library; setting modified references to said dynamic link library in the correct places of the application; and, upon loading said application program and said loader into the main memory of said computer, initializing said dynamic link library by said library loader; thereby linking said library to the application program like a static link library. The library loader and the pseudo-statically linked library (PLL) could be embedded into the application program, thereby using unused space within the application. The protected application presents itself as a monolithic application without the vulnerable interface to a DLL.