Decompiling Rust: An Empirical Study of Compiler Optimizations and Reverse Engineering Challenges
Zixu Zhou

TL;DR
This paper evaluates the challenges of decompiling Rust binaries, highlighting how language features and compiler optimizations impact decompilation quality, and provides insights for improving decompilation tools.
Contribution
It offers a benchmark-driven analysis of Rust decompilation difficulties, identifying key language features that hinder reverse engineering and suggesting directions for Rust-aware decompilation strategies.
Findings
Generic types and trait methods reduce decompilation accuracy
Release builds significantly lower decompilation quality
Specific language constructs affect control flow and type recovery
Abstract
Decompiling Rust binaries is challenging due to the language's rich type system, aggressive compiler optimizations, and widespread use of high-level abstractions. In this work, we conduct a benchmark-driven evaluation of decompilation quality across core Rust features and compiler build modes. Our automated scoring framework shows that generic types, trait methods, and error handling constructs significantly reduce decompilation quality, especially in release builds. Through representative case studies, we analyze how specific language constructs affect control flow, variable naming, and type information recovery. Our findings provide actionable insights for tool developers and highlight the need for Rust-aware decompilation strategies.
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
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Security and Verification in Computing
