
Diapositives et fichiers pour l'atelier Reversing Rust Binaries: One step beyond strings à REcon 2024, présenté le 28 juin 2024.
Ce dépôt contient les fichiers complémentaires de l'atelier Reversing Rust Binaries: One step beyond strings de la REcon 2024, présenté le 28 juin 2024.
Au cours de la présentation, nous allons construire et soumettre à la rétro-ingénierie un binaire Rust très simple : un téléchargeur bénin. Le code source du téléchargeur se trouve dans ce dépôt, dans le dossier simple-downloader/.
Lisez ci-dessous les instructions de configuration à effectuer avant l'atelier !
Pour une configuration facile, vous pouvez télécharger une VM Ubuntu préconfigurée qui contient tout ce qui suit :
rust-analyzer préinstallée (pour l'autocomplétion et les infobulles de documentation)simple-downloader/ de ce dépôtsimple-downloaderVous pouvez télécharger le fichier VM (un fichier .OVA) ici : https://drive.google.com/file/d/1pM1MwQf4Ccjt-KokbV1RFh8C9tv48jrt/view?usp=sharing
Vous pouvez ensuite importer ce fichier OVA dans votre logiciel de VM (par exemple VMware Workstation, VMWare Fusion, VirtualBox, etc.)
Le compte principal de la VM a pour nom d'utilisateur user et pour mot de passe user.
Si vous souhaitez suivre cet atelier depuis le confort de votre propre machine, vous aurez besoin des éléments suivants :
https://sh.rustup.rs/rustup-init.sh) ; cependant, le code est très facilement adaptable pour Windows également.simple-downloader est fourni ici : prebuilt-files/rust-reversing-workshop-2024_2024_05_17.garsimple-downloader du projet Ghidra sont également disponibles séparément :
Les instructions officielles d'installation de la chaîne d'outils se trouvent sur https://rustup.rs/. Suivez les instructions qui y figurent ; la page affichera des instructions spécifiques à votre système d'exploitation.
Après l'installation, vérifiez que vous pouvez exécuter les deux outils nouvellement installés rustup et 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)
Nous utiliserons la version 1.77.1 de Rust dans cet atelier ; installez donc cette version et définissez-la comme version par défaut de votre chaîne d'outils pour toutes les compilations :
rustup install 1.77.1
rustup default 1.77.1
Si vous compilez sous Windows ou macOS, vous pouvez passer cette étape.
Si vous compilez sous Linux : une partie de cette compilation repose sur gcc, ld, pkg-config et les en-têtes de développement OpenSSL. Sur Ubuntu, vous pouvez les installer avec
sudo apt install build-essential
sudo apt install pkg-config
sudo apt install libssl-dev