Obfuscating Public API Methods via Interface Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software development kits (SDKs) that handle sensitive information face security threats due to exposed public API methods, which cannot be obfuscated without disrupting functionality for second developers.

Innovation Solution

The implementation of a method and system for securely obfuscating exposed public API methods by creating interface source code that maps obfuscated functions in the SDK binary to publically accessible functions, allowing for obfuscation of both the API calls and the SDK binary without breaking functionality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If public API methods are left unobfuscated for developer usability, then ease of operation is improved, but security is worsened due to exposure to malicious analysis

Engineering Contradiction:
Improvedeveloper usabilityVSAvoidsecurity vulnerability
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent segments the API interface into two distinct layers: a human-readable interface layer for developer interaction and an obfuscated implementation layer for security. The interface source code maintains readable method names while the compiled binary contains obfuscated symbols, creating a functional separation between usability and security concerns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mapping mechanism that connects the readable interface names to the obfuscated binary implementation. This mapping layer allows developers to use meaningful names while the actual executable code references obfuscated symbols, acting as a buffer that protects the binary from analysis while maintaining developer productivity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Object-affected harmful factors

If public API methods are obfuscated for security, then security is improved, but ease of operation is worsened because developers cannot meaningfully utilize the API calls

Engineering Contradiction:
Improvesecurity protectionVSAvoiddeveloper usability
Core Design Contradiction:
Object-affected harmful factorsVSEase of operation

Solution Approach 1:

The patent applies different quality characteristics to different parts of the API interface. The interface source code portion that developers interact with maintains high readability and meaningful names, while the compiled binary portion is fully obfuscated. This local differentiation allows each part to optimize for its specific purpose without compromising the other.

Inventive Principle:
Principle #3Local quality

3Object-affected harmful factors

If the entire application is obfuscated for security, then security is improved, but reliability is worsened because API function calls cannot be properly resolved

Engineering Contradiction:
Improvesecurity protectionVSAvoidfunction call resolution
Core Design Contradiction:
Object-affected harmful factorsVSReliability

Solution Approach 1:

The patent performs preliminary obfuscation of the binary symbols before the linking stage, then establishes the correct mappings between interface calls and obfuscated symbols during the build process. This preliminary action ensures that even though symbols are obfuscated, the correct functions are still resolved and called, maintaining reliability while achieving security.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250036378A1Obfuscation on exposed public API from software library
Publication Date: 2025.01.30 VISA INTERNATIONAL SERVICE ASSOCIATION
  • US20250036378A1 patent drawing
  • US20250036378A1 patent drawing
  • US20250036378A1 patent drawing

AI summary

A method for creating a final application includes a computer obtaining an obfuscated SDK binary and an interface source code that comprises one or more functions that call obfuscated functions within the obfuscated SDK. The computer then creates application source code that calls functions in the interface source code. The computer builds an intermediate object comprising the interface source code and the application source code. The computer then creates the final application using the intermediate object and the obfuscated SDK binary.