Obfuscating Public API Methods via Interface Mapping
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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
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.
Data Source
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.


