1995
DOI: 10.1002/spe.4380250706
|View full text |Cite
|
Sign up to set email alerts
|

Decompilation of binary programs

Abstract: The structure of a decompiler is presented, along with a thorough description of the different modules that form part of a decompiler, and the type of analyses that are performed on the machine code to regenerate high‐level language code. The phases of the decompiler have been grouped into three main modules: front‐end, universal decompiling machine, and back‐end. The front‐end is a machine‐dependent module that performs the loading, parsing and semantic analysis of the input program, as well as generating an … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
43
0
1

Year Published

2000
2000
2020
2020

Publication Types

Select...
4
4
1

Relationship

0
9

Authors

Journals

citations
Cited by 132 publications
(47 citation statements)
references
References 8 publications
0
43
0
1
Order By: Relevance
“…Many decompilers have been invented in the literature for various programming languages (Cifuentes and Gough 1995;Proebsting and Watterson 1997;Desnos and Gueguen 2011;Mycroft 1999;Breuer and Bowen 1994). Several techniques are involved to successfully decompile a program.…”
Section: Program Decompilationmentioning
confidence: 99%
See 1 more Smart Citation
“…Many decompilers have been invented in the literature for various programming languages (Cifuentes and Gough 1995;Proebsting and Watterson 1997;Desnos and Gueguen 2011;Mycroft 1999;Breuer and Bowen 1994). Several techniques are involved to successfully decompile a program.…”
Section: Program Decompilationmentioning
confidence: 99%
“…Given a low-level language program such as an executable file, a decompiler generates a high-level language counterpart that resembles the (original) source code. This has several applications including recovery of lost source code, migrating a system to another platform, upgrading an old program into a newer programming language, restructuring poorly-written code, finding bugs or malicious code in binary programs, and program validation (Cifuentes and Gough 1995). An example of using the decompiler to reuse code is a well-known lawsuit between Oracle and Google (United States District Court 2011).…”
Section: Compiler and Decompilersmentioning
confidence: 99%
“…An obvious area is reverse engineering and in particular decompilation, where one aims to recover information about the original program, or preferably a close approximation of the original source code, from a compiled binary [11][12][13]. The compiler literature knows the concept of link-time-and post-link-optimizers [14,7], which exploit the fact that the whole program including libraries and hand-written assembly routines can be analyzed and optimized at linktime, i.e., after all code has been translated to binary with the symbol information still present.…”
Section: Related Workmentioning
confidence: 99%
“…Instruction recovery is central to static analysis and there are two general approaches -1) linear sweep, which begins decoding from the first byte, and 2) recursive traversal [9], which follows instruction flow as it decodes. The first approach is straightforward with the underlying assumption that the entire byte stream consists exclusively of instructions.…”
Section: Related Workmentioning
confidence: 99%