
Slides e arquivos para o workshop Reversing Rust Binaries: One step beyond strings na REcon 2024, apresentado em 28 de junho de 2024.
Este repositório contém os arquivos complementares para o Reversing Rust Binaries: One step beyond strings workshop no REcon 2024, apresentado em 28 de junho de 2024.
Durante a apresentação, vamos compilar e reverter um binário Rust muito simples - um downloader benigno. O código-fonte do downloader está dentro deste repositório, na pasta simple-downloader/.
Leia abaixo as instruções de preparação pré-workshop!
Para uma configuração fácil, você pode baixar uma VM Ubuntu pré-configurada que contém tudo o que segue:
rust-analyzer pré-instalada (para autocompletar e dicas de documentação)simple-downloader/ deste repositóriosimple-downloaderVocê pode baixar o arquivo da VM (um arquivo .OVA) aqui: https://drive.google.com/file/d/1pM1MwQf4Ccjt-KokbV1RFh8C9tv48jrt/view?usp=sharing
Você pode então importar esse arquivo OVA para o seu software de VM (ex.: VMware Workstation, VMware Fusion, VirtualBox, etc.)
A conta principal na VM tem nome de usuário user e senha user.
Se você quiser fazer este workshop no conforto da sua própria máquina, você precisará do seguinte:
https://sh.rustup.rs/rustup-init.sh); no entanto, o código é muito facilmente adaptável para Windows também.simple-downloader é fornecido aqui: prebuilt-files/rust-reversing-workshop-2024_2024_05_17.garsimple-downloader no projeto Ghidra também estão disponíveis separadamente:
As instruções oficiais de configuração do toolchain estão em https://rustup.rs/. Siga as instruções lá; a página exibirá instruções específicas para o seu sistema operacional.
Verifique, após a instalação, se você consegue executar as ferramentas recém-instaladas rustup e cargo:
$ 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 a versão 1.77.1 do Rust neste workshop, então instale essa versão e alterne sua toolchain para essa versão como padrão para todas as compilações:
rustup install 1.77.1
rustup default 1.77.1
Se você está compilando no Windows ou no macOS, pode pular esta etapa.
Se você está compilando no Linux: partes desta compilação dependem de gcc, ld, pkg-config e dos cabeçalhos de desenvolvimento do OpenSSL. No Ubuntu, você pode instalá-los com
sudo apt install build-essential
sudo apt install pkg-config
sudo apt install libssl-dev