Systems and methods for identifying source code from binaries using machine learning
AssigneeDENSO International America, Inc.
InventorGopalakrishnan Iyer
Life of this patent
Estimating the term…
Abstract
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.
Claims20
A classifier system for identifying source code from program binaries, comprising:
- one or more processors;
- a memory communicably coupled to the one or more processors and storing:
- an image module including instructions that when executed by the one or more processors cause the one or more processors to, in response to receiving, as an electronic input, a segment of code that is represented in a binary format, transform the segment into an image to visually represent the binary format of the segment;
- and
- a recognition module including instructions that when executed by the one or more processors cause the one or more processors to analyze the image by processing the image using a classifier that is a machine learning algorithm with an internal understanding of correlations between the binary format and associated source code to recover the source code for the segment without knowledge of the source code and by analyzing the segment as a whole without decomposing the segment into subcomponents;
- and
- generate, as an electronic output from the 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, wherein the segment indicator identifies separate functions and statements of the source code represented in the segment.
A non-transitory computer-readable medium storing instructions for identifying source code from program binaries and that when executed by one or more processors cause the one or more processors to:
- in response to receiving, as an electronic input, a segment of code that is represented in a binary format, transform the segment into an image to visually represent the binary format of the segment;
- analyze the image by processing the image using a classifier that is a machine learning algorithm with an internal understanding of correlations between the binary format and associated source code to recover the source code for the segment without knowledge of the source code and by analyzing the segment as a whole without decomposing the segment into subcomponents;
- and
- generate, as an electronic output from the 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, wherein the segment indicator identifies separate functions and statements of the source code represented in the segment.
A method of identifying source code from program binaries, comprising:
- in response to receiving, as an electronic input, a 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;
- analyzing the image by processing the image using a classifier that is a machine learning algorithm with an internal understanding of correlations between the binary format and associated source code to recover the source code for the segment without knowledge of the source code and by analyzing the segment as a whole without decomposing the segment into subcomponents;
- and
- generating, as an electronic output from the 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, wherein the segment indicator identifies separate functions and statements of the source code represented in the segment.
Dependencies are inferred from the claim text.