
Diapositivas y archivos para el taller Reversing Rust Binaries: One step beyond strings en REcon 2024, presentado el 28 de junio de 2024.
Este repositorio contiene los archivos complementarios para el taller Reversing Rust Binaries: One step beyond strings en REcon 2024, presentado el 28 de junio de 2024.
Durante la presentación, construiremos y analizaremos inversamente un binario de Rust muy sencillo: un descargador benigno. El código fuente del descargador está dentro de este repositorio, en la carpeta simple-downloader/.
¡Lee a continuación las instrucciones de configuración previas al taller!
Para una configuración sencilla, puedes descargar una máquina virtual Ubuntu preconfigurada que incluye todo lo siguiente:
rust-analyzer preinstalada (para autocompletado y tooltips de documentación)simple-downloader/ de este repositoriosimple-downloaderPuedes descargar el archivo de la VM (un archivo .OVA) aquí: https://drive.google.com/file/d/1pM1MwQf4Ccjt-KokbV1RFh8C9tv48jrt/view?usp=sharing
Luego puedes importar este archivo OVA en tu software de VM (por ejemplo, VMware Workstation, VMWare Fusion, VirtualBox, etc.)
La cuenta principal en la VM tiene nombre de usuario user y contraseña user.
Si prefieres realizar este taller desde la comodidad de tu propia máquina, necesitarás lo siguiente:
https://sh.rustup.rs/rustup-init.sh); sin embargo, el código se adapta muy fácilmente para Windows también.simple-downloader: prebuilt-files/rust-reversing-workshop-2024_2024_05_17.garsimple-downloader en el proyecto de Ghidra también están disponibles por separado:
Las instrucciones oficiales de configuración del toolchain están en https://rustup.rs/. Sigue las instrucciones allí; la página mostrará instrucciones específicas para tu sistema operativo.
Después de la instalación, verifica que puedas ejecutar tanto las herramientas rustup como cargo recién instaladas:
$ rustup --version
rustup 1.27.0 (bbb9276d2 2024-03-08)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: The currently active `rustc` version is `rustc 1.77.1 (7cf61ebde 2024-03-27)`
$ cargo --version
cargo 1.77.1 (e52e36006 2024-03-26)
Usaremos la versión 1.77.1 de Rust en este taller, así que instala esa versión y cambia tu toolchain a esa versión como predeterminada para todas las compilaciones:
rustup install 1.77.1
rustup default 1.77.1
Si estás compilando en Windows o macOS, puedes omitir este paso.
Si estás compilando en Linux: Partes de esta compilación dependen de gcc, ld, pkg-config y los encabezados de desarrollo de OpenSSL. En Ubuntu, puedes instalarlos con
sudo apt install build-essential
sudo apt install pkg-config
sudo apt install libssl-dev