The Decompilation Wiki¶
The Decompilation Wiki is a collection of categorized information on all things decompilation. From real-world applications to cutting-edge research papers, the Decompilation Wiki has it all! Join our Discord below for active community engagement. To get involved, see our contribution guide. The Decompilation Wiki is still early in development, so any contribution is appreciated!
What Is Decompilation?¶
Interestingly, the term "decompilation" and its definition are still argued about by researchers. However, most people agree that decompilation is the reversal of compilation. By that definition, decompilation is the process of turning low-level machine code into a higher-level representation.
In many cases, this means turning machine code, like x86 assembly, into source code, like C. This methodology can also be applied to languages like Java, which create bytecode. The difficulty and accuracy of decompilation can vary per language target1.
Decompilation has wide applications across cyber security, including:
- reverse engineering (the understanding of programs)
- vulnerability discovery (the understanding of program flaws)
- malware classification
- program repair
- and much more...
Wiki Goals?¶
This wiki has two main goals:
- Making decompilation knowledge more accessible to new-comers in the field
- Categorizing research and tooling to make future decompilation progress easier
To accomplish the first goal, it is highly encouraged to link public code when adding a technique. Additionally, we will store tutorials for self-rolling (to a degree) your own decompiler components.
To accomplish the second goal, we will attempt to rapidly categorize new research and tools in the area. These categorizations may not be agreed upon at first, however, we will update them as the community hits consensus. In this way, we can quickly attempt to taxonomize the area of decompilation while iterating on it.
Who Made This?¶
The Decompilation Wiki was started by Zion Leonahenahe Basque, but is sustained by the contributions of the decompilation community. Both closed and open-source developers are welcome!
The wiki is highly inspired by the following sources:
- Program-Transformation.org: a wiki on program transformations, including some decompilation.
- CTF Wiki: a wiki for Capture the Flag, inspiring this layout and design.
- "30 Years into Scientific Binary Decompilation", Dr. Ruoyu (Fish) Wang: a source of information on decompilers.
Additionally, the wiki is due in large part to the support and advisement of Zion's PhD committee: Dr. Ruoyu (Fish) Wang, Dr. Yan Shoshitaishvili, Dr. Adam Doupé, and Dr. Christina Cifuentes.
-
Yakdan, Khaled, et al. "Helping johnny to analyze malware: A usability-optimized decompiler and malware analysis user study." 2016 IEEE Symposium on Security and Privacy (SP). IEEE, 2016. ↩