Extracting and Recompiling Embedded DLL Resources

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing method of providing software applications in multiple languages is time-consuming and requires developers to create satellite resources, leading to frustration for customers who need applications in their native language.

Innovation Solution

A process to extract, edit, and recompile resources from dynamic-link library (DLL) assemblies, allowing users to create replacement data and compile revised DLLs without rebuilding the application, using a resource generator module that loads the original DLL, extracts data, creates a manifest, edits resources, and imports the edited data back into the DLL.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If satellite resources are created for each language version, then the application can support multiple languages, but the process becomes time-consuming and requires developer intervention

Engineering Contradiction:
Improvelanguage support capabilityVSAvoidtime to create localized versions
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent enables end-users to extract, edit, and recompile embedded resources within DLL files independently, without requiring developer involvement. Users can modify language resources, graphics, and other embedded data directly, allowing them to self-create localized versions of applications for different languages and regions

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent provides mechanisms to extract embedded resources from compiled DLL files, allowing users to access and modify language data, graphics, and other resources that were previously locked inside the binary. This extraction capability enables users to create satellite assemblies for different languages without needing source code or developer tools

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If satellite resources are created for each language version, then the application can support multiple languages, but developer intervention is required which increases complexity

Engineering Contradiction:
Improvelanguage support capabilityVSAvoidprocess complexity for creating localized versions
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system automates the entire process of creating localized versions, allowing users to independently extract resources, edit language data, and recompile DLL files with new satellite assemblies. This eliminates the need for developers to manually create and manage satellite resources for each language

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent creates a universal tool that can handle multiple types of embedded resources (language data, graphics, parameters) within a single DLL file. The system provides a unified interface for extracting, editing, and recompiling various resource types, simplifying what would otherwise require multiple separate processes

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

3Reliability

If data is embedded in DLL files for security and ease of deployment, then the data is protected from alteration, but users cannot easily modify or expand the data for localization

Engineering Contradiction:
Improvedata protection and securityVSAvoidease of data modification
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The patent provides extraction mechanisms that allow users to retrieve embedded resources from compiled DLL files without needing access to the original source code or development environment. Users can extract language data, graphics, and other resources from the binary and modify them independently

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary extraction of embedded resources before modification, allowing users to work with the data in an editable format. After users complete their modifications to language resources and other embedded data, the system recompiles the DLL with the updated satellite assemblies, maintaining security while enabling modification

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8776031B1Manipulating resources embedded in a dynamic-link library
Publication Date: 2014.07.08 ALVARIA INC
  • US8776031B1 patent drawing
  • US8776031B1 patent drawing
  • US8776031B1 patent drawing

AI summary

Embodiments of the present invention provide computer program products, methods, and systems for extracting and revising data for a resource embedded in a dynamic-link library (DLL) assembly. In various embodiments, the DLL assembly is loaded and data for a resource is extracted from the assembly. In particular embodiments, a manifest is created that includes a path for the extracted data extracted. This path includes information on placing the data for the resource into the assembly to construct a necessary DLL structure compatible with the program application. After the extracted data has been edited to create replacement data, in various embodiments, the replacement data is imported into the assembly based on the path for the extracted data and the assembly is compiled to create a revised DLL that may be read by the program application in place of or in addition to the original DLL assembly to utilize the replacement data.