🤖 AI Summary
This paper systematically investigates the core challenges in decompiling Rust binaries, identifying that Rust’s rich type system, aggressive compiler optimizations, and high-level abstractions—including generics, trait methods, and structured error handling—severely degrade decompilation fidelity. To address this, the authors introduce the first benchmark-driven, automated evaluation framework specifically designed for Rust decompilation, enabling quantitative assessment of control-flow reconstruction, variable naming, and type recovery across build configurations (e.g., debug vs. release). Experimental results reveal that monomorphization of generics and erasure of trait objects in release builds cause substantial loss of type information, while existing decompilers lack semantic awareness of Rust-specific constructs. The study provides an empirical foundation and concrete optimization directions for developing Rust-aware decompilation tools, highlighting critical gaps in current reverse-engineering infrastructure for memory-safe systems programming languages.
📝 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.