• Corpus ID: 15407165

C Decompilation : Is It Possible ?

  title={C Decompilation : Is It Possible ?},
  author={Katerina Troshina and Alexander Chernov and Yegor Derevenets},
Decompilation is reconstruction of a program in a high-level language from a program in a low-level language. Possibility and feasibility of decompilation is a subject of controversy over last years. We present several arguments supporting the idea that in spite of impossibility of full automatic decompilation there exist methods and techniques that cover most of decompilation process for wide class of programs. The proposed methods and techniques are implemented in the TyDec decompiler being… 

Figures and Tables from this paper

Context parsing (not only) of the object-file-format description language
A formal language and its parser will be used for an object file parsing and its automatic conversion into the internal uniform file format and the concept of this parser can be utilized within other programming languages.
RESource: A Framework for Online Matching of Assembly with Open Source Code
The tool called RESource considers the extraction of some features in the assembly code so that queries can be triggered to a source repository in a reliable way.
Title: Assembly to Open Source Code Matching for Reverse Engineering and Malware Analysis
A framework for assembly to open-source code matching is elaborate and it is shown that the underlying tools and techniques are effective in providing additional insights into the functionality, inner workings, and components of the target binaries.
A Search System for Mathematical Expressions on Software Binaries
This work uses a knowledge base assisted approach to solve the problem of detecting mathematical expressions in software binaries and is able to search mathematical expressions with a precision of 80% and a recall of 53%.
Obfuscated Binaries Reliability Analysis Based on Qualitative Method
Type reconstruction as essential steps in reverse engineering is gradually being taken as seriously research topic. Although there are a lot of research on binary code reliability in general, the
Improving type information inferred by decompilers with supervised machine learning
This article builds different classification models capable of inferring the high-level type returned by functions, with significantly higher accuracy than existing decompilers.


Assembly to high-level language translation
Techniques used in the asm2c translator, a SPARC assembly to C translator, are extensions and improvements on previously developed CISC techniques and the choice of intermediate representation allows for both RISC and CISC assembly code to be supported by the analyses.
Experience in the design, implementation and use of a retargetable static binary translation framework
The overall design and architecture of the UQBT framework is described, the goals for the project, the resulting framework, experiences with translations across different machines, and lessons learned are described.
DIVINE: DIscovering Variables IN Executables
This paper shows that variable-like entities can be recovered by iterating Value-Set Analysis (VSA), a combined numeric-analysis and pointer-analysis algorithm, and Aggregate Structure Identification, an algorithm to identify the structure of aggregates.
Advanced Compiler Design and Implementation
Advanced Compiler Design and Implementation by Steven Muchnick Preface 1 Introduction to Advanced Topics 1.1 Review of Compiler Structure 1.2 Advanced Issues in Elementary Topics 1.3 The Importance
Type-based decompilation
  • European Symp. on Programming
  • 1999
DCC: The dcc decompiler
  • DCC: The dcc decompiler
Interprocedural static data flow recovery of high-level language code from assembly
  • Technical Report