Binary Control Program Modification via Mapping Table

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in modifying control programs for control units, particularly in identifying and replacing functions in binary code without access to source code, due to the complexity of parsing binary code and assigning function calls to specific functions.

Innovation Solution

A method that creates a mapping table to identify and store branch addresses, variable accesses, and function calls, allowing for the modification of control programs by comparing this table with a predefined mapping table to assign function names and replace variables, enabling function modification without source code knowledge.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If binary code analysis (parsing) is performed to identify function calls, then function addresses can be determined, but the specific function names cannot be assigned

Engineering Contradiction:
Improvefunction identification accuracyVSAvoidfunction name information
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent creates a mapping table that copies and stores the correspondence between function names and their memory addresses during the development phase. This mapping table serves as a reference copy that can be used later to identify function names in the binary code without needing the original source code, thus resolving the information loss problem.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent performs the function identification and mapping creation in advance during the development phase, before the binary code is deployed. By preliminarily establishing the mapping between function names and addresses, the system enables later identification of functions in the installed control unit without requiring source code access at that later stage.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If service functions are inserted into control program code to replace functions, then function modification is enabled, but source code availability is required

Engineering Contradiction:
Improvefunction modification capabilityVSAvoidsource code accessibility
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent introduces an intermediary mapping table that mediates between the binary code and the function modification process. Instead of requiring direct access to source code, the mapping table serves as an intermediary structure that enables function identification and modification through binary code analysis alone, thus resolving the accessibility problem.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Adaptability or versatility

If control program modification is performed in installed control units, then field changes are enabled, but complex interfaces and devices are required

Engineering Contradiction:
Improvefield modification capabilityVSAvoidmodification interface complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the essential information needed for function modification (function names and addresses) from the binary code using the pre-created mapping table. By extracting only the necessary identification information rather than requiring complete source code or complex development environments, the system enables simpler field modification processes using basic interfaces like dSPACE DCI-GSI2.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS9971321B2Method for influencing a control program
Publication Date: 2018.05.15 DSPACE DIGITAL SIGNAL PROCESSING & CONTROL ENGINEERING GMBH
  • US9971321B2 patent drawing
  • US9971321B2 patent drawing
  • US9971321B2 patent drawing

AI summary

A method for influencing a control program of a control unit, the control program having a plurality of first functions configured for controlling an actuator. The program code of the control program is examined for the occurrence of function calls, and the branch addresses and return addresses connected with the function calls, and the variables connected with the applicable first functions, are ascertained with the names of the variables and with the applicable memory addresses. The ascertained first functions and variables assigned to the applicable first functions are stored with the connected memory addresses in a first mapping table, and from a comparison of the first mapping table with a second predefined mapping table, function names are assigned to at least a portion of the first functions, and at least one first value of one of the variables is replaced by a second value.