Reconstructing Rust Types: A Practical Guide for Reverse Engineers [RE//verse 2025]

Reconstructing Rust Types: A Practical Guide for Reverse Engineers [RE//verse 2025]

On February 28, 2025, I presented the talk Reconstructing Rust Types: A Practical Guide for Reverse Engineers, at the RE//verse conference:

As of 2024, most reverse engineers still struggle to statically reverse Rust binaries. Static RE tools are beginning to develop features for analyzing Rust, and tools for recovering Rust library function signatures now exist. However, even when function symbols and signatures are available, analyzing data flow in Rust binaries is not trivial. The Rust type system, standard library, and compiler differ in many ways from C and C++, making type recovery difficult even for experienced reverse engineers.

This talk provides a guide for reverse engineers on reconstructing types in Rust binaries. We will cover the basic building blocks of the Rust type system, from both the Rust programmer’s perspective and the Rust compiler’s perspective. From the primitive types, we will move to constructing the layouts of common standard library types found in Rust binaries, including types used in string formatting and in error handling. We will also cover artifacts inside Rust binaries that give information about type layout - how to find them, how to use them, and where in the Rust toolchain they actually come from.

The goal for this talk is to provide the audience with a solid mental model for the layouts of Rust types, and present bite-sized practical techniques for Rust structure recovery. The intended audience for this talk is reverse engineers who are familiar with reversing C or C++ code, but who are unfamiliar with both developing and reversing Rust.

RE//verse was really well organized and I had a great time there! Looking forward to seeing this reverse engineering focused conference grow. Thanks so much again to the organizers for the opportunity to present there, and to the review board for their feedback on the presentation.

Talk Video #

Slides #

Slides are available in the following formats:

  • Single-file HTML page. If you would like to use the presentation slides as a reference, this is the most comfortable format.
Preview of the single-page HTML version of the RE//verse 2025 talk slides

The slides are also mirrored on GitHub, at cxiao/reconstructing-rust-types-talk-re-verse-2025.