A Neural-based Program Decompiler
Cheng Fu, Huili Chen, Haolan Liu, Xinyun Chen, Yuandong Tian, Farinaz, Koushanfar, Jishen Zhao

TL;DR
This paper introduces Coda, a neural-based framework for binary decompilation that significantly improves accuracy over traditional methods by generating high-level code from binaries using an end-to-end approach.
Contribution
Coda is the first neural-based, end-to-end decompiler that effectively captures program semantics and outperforms existing tools in accuracy and generalization.
Findings
Coda achieves 82% program recovery accuracy on unseen binaries.
Coda outperforms state-of-the-art decompilers with 70% higher accuracy.
Coda effectively preserves program semantics and correctness.
Abstract
Reverse engineering of binary executables is a critical problem in the computer security domain. On the one hand, malicious parties may recover interpretable source codes from the software products to gain commercial advantages. On the other hand, binary decompilation can be leveraged for code vulnerability analysis and malware detection. However, efficient binary decompilation is challenging. Conventional decompilers have the following major limitations: (i) they are only applicable to specific source-target language pair, hence incurs undesired development cost for new language tasks; (ii) their output high-level code cannot effectively preserve the correct functionality of the input binary; (iii) their output program does not capture the semantics of the input and the reversed program is hard to interpret. To address the above problems, we propose Coda, the first end-to-end…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsAdvanced Malware Detection Techniques · Software Engineering Research · Security and Verification in Computing
