
REcon 2024で2024年6月28日に発表された「Reversing Rust Binaries: One step beyond strings」ワークショップのスライドとファイル。
このリポジトリには、REcon 2024 の Reversing Rust Binaries: One step beyond strings ワークショップ(2024年6月28日開催)の補助ファイルが含まれています。
プレゼンテーションでは、非常にシンプルな Rust バイナリ(無害なダウンローダ)をビルドしてリバースエンジニアリングします。ダウンローダのソースコードは、このリポジトリの simple-downloader/ フォルダ内にあります。
ワークショップ前のセットアップ手順は以下をお読みください。
簡単にセットアップできるよう、以下をすべて含む事前構成済みの Ubuntu VM をダウンロードできます。
rust-analyzer 拡張機能 が事前インストール済み。オートコンプリートとドキュメントのツールチップ用)simple-downloader/ フォルダ内のコードsimple-downloader バイナリの Linux ビルド済みバージョンが含まれた Ghidra プロジェクトVM ファイル(.OVA ファイル)は、こちらからダウンロードできます: https://drive.google.com/file/d/1pM1MwQf4Ccjt-KokbV1RFh8C9tv48jrt/view?usp=sharing
この OVA ファイルは、お使いの VM ソフトウェア(VMware Workstation、VMware Fusion、VirtualBox など)にインポートできます。
VM のメインアカウントは、ユーザー名 user、パスワード user です。
ご自身のマシンでこのワークショップを行いたい場合は、以下が必要です。
https://sh.rustup.rs/rustup-init.sh)をダウンロードして実行します。ただし、このコードは Windows 用にも簡単に適応できます。simple-downloader バイナリの Linux ビルド済みバージョンを含む Ghidra プロジェクトは、こちらで提供されています: prebuilt-files/rust-reversing-workshop-2024_2024_05_17.garsimple-downloader バイナリは、個別にも入手できます:
公式のツールチェーンセットアップ手順は https://rustup.rs/ にあります。そこの指示に従ってください。ページには、お使いのオペレーティングシステム向けの具体的な手順が表示されます。
インストール後、新しくインストールされた rustup と 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)
このワークショップでは Rust バージョン 1.77.1 を使用します。そのバージョンをインストールし、すべてのビルドのデフォルトとしてそのバージョンにツールチェーンを切り替えてください。
rustup install 1.77.1
rustup default 1.77.1
Windows または macOS でビルドする場合は、この手順をスキップできます。
Linux でビルドする場合: このビルドの一部は、gcc、ld、pkg-config、および OpenSSL 開発ヘッダーに依存しています。Ubuntu では、これらを次のコマンドでインストールできます。
sudo apt install build-essential
sudo apt install pkg-config
sudo apt install libssl-dev