scispace - formally typeset
Journal ArticleDOI

Decompilation of Binary Programs

TLDR
The structure of a decompiler is presented, along with a thorough description of the different modules that form part of a decomiler, and the type of analyses that are performed on the machine code to regenerate high‐level language code.
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 intermediate representation of the program. The universal decompiling machine is a machine and language independent module that performs data and control flow analysis of the program based on the intermediate representation, and the program''s control flow graph. The back-end is a language dependent module that deals with the details of the target high-level language.

read more

Citations
More filters

A Taxonomy of Obfuscating Transformations

TL;DR: It is argued that automatic code obfuscation is currently the most viable method for preventing reverse engineering and the design of a code obfuscator is described, a tool which converts a program into an equivalent one that is more diicult to understand and reverse engineer.
Proceedings ArticleDOI

Obfuscation of executable code to improve resistance to static disassembly

TL;DR: Experimental results indicate that significant portions of executables that have been obfuscated using the techniques described are disassembled incorrectly, thereby showing the efficacy of the methods.
Patent

Software self-defense systems and methods

TL;DR: In this paper, the authors describe obfuscation, tamper-resistance, and watermarking techniques for protecting a computer program from unauthorized analysis and modification. But they do not discuss how to detect tampering.
Proceedings ArticleDOI

Manufacturing cheap, resilient, and stealthy opaque constructs

TL;DR: The design of a Java code obfuscator is described, a tool which - through the application of code transformations - converts a Java program into an equivalent one that is more difficult to reverse engineer.
Journal ArticleDOI

Let a Thousand Flowers Bloom? An Early Look at Large Numbers of Software 'Apps' Developers and Patterns of Innovation

TL;DR: Overall, adding large numbers of producers led innovation to become more dependent on population-level diversity, variation, and experimentation—while drawing less on the heroic efforts of any one individual innovator.
References
More filters
Book

The Theory of Parsing, Translation, and Compiling

TL;DR: It is the hope that the algorithms and concepts presented in this book will survive the next generation of computers and programming languages, and that at least some of them will be applicable to fields other than compiler writing.
Book

Crafting a Compiler

TL;DR: Crafting a Compiler presents a practical approach to compiler construction with thorough coverage of the material and examples that clearly illustrate the concepts in the book.
Journal ArticleDOI

Rewriting executable files to measure program behavior

TL;DR: This work states that adding instrumentation code after the compilation process—by rewriting the executable file—presents fewer complications and leads to more complete measurements.
Dissertation

Reverse compilation techniques

TL;DR: Techniques for writing reverse compilers or decompilers are presented in this thesis, based on compiler and optimization theory, and applied to decompilation in a unique way; these techniques have never before been published.
Related Papers (5)