Binary Code to Image Transformation for Source Reconstruction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Reverse engineering binary machine code into its original source code is complex due to obfuscation and the lack of knowledge about the compiler used, making it difficult to accurately reconstruct the source code, especially in security contexts where malicious code needs to be identified and analyzed.

Innovation Solution

A machine learning algorithm, such as a deep learning neural network, is used to transform binary code into visual images, allowing a classifier to recognize patterns and identify source code segments by correlating binary encoded images with their corresponding source code, thereby improving the accuracy of reverse engineering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional reverse engineering methods are used to reconstruct source code from binary, then the process can be completed, but the accuracy is low and the process is tedious

Engineering Contradiction:
Improvesource code reconstruction accuracyVSAvoidreverse engineering time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent replaces traditional mechanical reverse engineering processes (manual disassembly, approximation, and reconstruction of source code) with a machine learning-based system. The binary code is transformed into image representations, and a trained classifier automatically identifies source code segments, eliminating the need for tedious manual approximation and reconstruction steps while significantly improving accuracy.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Difficulty of detecting and measuring

If binary code is directly analyzed without transformation, then the original structure is preserved, but the complexity of identification increases

Engineering Contradiction:
Improvesource code identification difficultyVSAvoidbinary representation complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary transformation step that converts binary code into image representations. This intermediary format serves as a bridge between the binary code and source code identification, allowing pattern recognition algorithms to effectively analyze the data without being hindered by the complexity of direct binary analysis. The image format makes structural patterns more visible and amenable to machine learning classification.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10761841B2Systems and methods for identifying source code from binaries using machine learning
Publication Date: 2020.09.01 DENSO CORP
  • US10761841B2 patent drawing
  • US10761841B2 patent drawing
  • US10761841B2 patent drawing

AI summary

System, methods, and other embodiments described herein relate to an improved approach to reverse engineering binary code through the use of machine learning and image processing. In one embodiment, a method includes, in response to receiving, as an electronic input, a code segment of code that is represented in a binary format, transforming the segment into an image to visually represent the binary format of the segment. The method includes generating, as an electronic output from a classifier, a segment indicator that is based, at least in part, on the image and that specifies source code corresponding to the segment in order to reverse engineer the segment into the source code using the classifier.