Optimizing source code from binary files
AssigneeArchitecture Technology Corporation
InventorsJason Hogan, Judson Powers
Life of this patent
Estimating the term…
Abstract
Various computing technologies for various reverse engineering platforms capable of outputting, including creating or generating, a human readable and high level source code, such as C, Fortran, LISP, or BASIC, from various binary files, such as application binaries, executable binaries, or data binaries, in an original language as developed pre-compilation. For example, some of such reverse engineering platforms can be programmed to disassemble binary files from different process architectures, identify various code optimizations as compiler introduced, reverse or unwind various compiler optimizations (de-optimize), and generate a human readable and high-level source code from de-optimized data.
Claims20
A computer-implemented method comprising:
- identifying, by a computer, a first intermediate representation from an assembly language of a binary file;
- determining, by the computer, a compiler optimization for the assembly language of the binary file by applying an artificial neural network (ANN) to the first intermediate representation;
- transforming, by the computer, the first intermediate representation in accordance with the compiler optimization to generate a second intermediate representation;
- generating, by the computer, a source code for the binary file using the second intermediate representation;
- identifying, by the computer, a code problem within the source code for the binary file;
- and
- updating, by the computer, the source code based on the identified code problem.
A system comprising a computer having one or more processors coupled with a memory, wherein the computer configured to:
- identify a first intermediate representation from an assembly language of a binary file;
- determine a compiler optimization for the assembly language of the binary file by applying an artificial neural network (ANN) to the first intermediate representation;
- transform the first intermediate representation in accordance with the compiler optimization to generate a second intermediate representation;
- generate a source code for the binary file using the second intermediate representation;
- identify a code problem within the source code for the binary file;
- and
- update the source code based on the identified code problem.
Dependencies are inferred from the claim text.