Reversing Modern Binaries: Practical Rust & Go Analysis

Master the Art of Rust & Go Reverse Engineering: Demystify Rust’s Inner Workings and Strengthen Your Cybersecurity Skills!

Unlock the secrets of Rust & Go with this hands-on training. Learn the essentials of reverse engineering, dive into Rust’s compilation and runtime mechanics, and master tools like Ghidra and GDB. Through practical exercises, gain the skills to analyze Rust binaries, tackle obfuscation, and strengthen your cybersecurity expertise. Perfect for those ready to explore the cutting edge of reverse engineering!

⏳ 32 hours | 🔄 Last updated : 26/01/2025

 

What you will learn

Understand Golang and Rust Compilation and Runtime

Master the compilation processes and runtime mechanics of both Golang and Rust. Learn how these languages manage memory, calling conventions, and symbol mangling/demangling to uncover the inner workings of their binaries effectively.

Analyze Language-Specific Control Flow

Dive into Golang and Rust-specific structures like Goroutines, channels, slices, enums, and structs, while understanding their control flows through functions, methods, and loops. Leverage tools like Ghidra, Radare2, GDB, and LLDB for comprehensive binary analysis and debugging.

Reverse Engineer and Analyze Modern Malware

Tackle real-world Golang and Rust malware challenges, from obfuscated binaries to advanced techniques like process hollowing, API hooking, and DLL injection. Craft YARA rules for detecting malware and apply your knowledge in practical scenarios, including a guided capstone project.

What’s included ?

👨‍💻 25+ hands-on exercises & labs
♾️ Lifetime access
📖 280+ digital and printable slides
📝 Assignments to apply your new skills
💯 Certificate of completion

Perfect for…

This course is for anyone who’s looking for a hands-on and pragmatic approach to audit and secure Rust code such as:

✔ Security engineers
✔ Vulnerability researchers
✔ Pentesters & Red team professionals

Content

Day 1: Rust Reverse Engineering – Fundamentals and Tooling

Module 1: Introduction to Rust and Reverse Engineering

  • History, philosophy, and features of Rust
  • Why attackers use Rust for malware development
  • Fundamentals of reverse engineering
  • Setting up the reverse engineering environment (Ghidra, GDB, LLDB, Radare2)

Module 2: Rust Compilation and Runtime

  • Compilation process: From source code to machine code (LLVM/MIR)
  • Rust runtime (Linux and Windows)
  • Rust’s calling conventions, memory management, symbol mangling/demangling

Module 3: Analyzing Rust Structures and Control Flow

  • Understanding data structures (Option, Result enums, slices, structs)
  • Analyzing control flow: Functions, methods, loops, conditionals
  • Exercise: Reverse engineering a simple Rust program

Day 2: Advanced Rust Reversing and Malware Analysis

Module 4: Tools and Techniques for Rust Reverse Engineering

  • Configuring Ghidra for Rust binaries
  • Debugging with GDB/GEF and LLDB
  • Practical exercises with Rust debugging and analysis

Module 5: Advanced Reverse Engineering and Obfuscation Techniques

  • Tackling stripped binaries: Symbol recovery and function inlining
  • Handling obfuscation techniques: String obfuscation, anti-debugging
  • Exercise: Reverse engineering an obfuscated Rust binary

Module 6: Advanced Malware Reverse Engineering Techniques in Rust

  • Analyzing process hollowing, API hooking, and DLL injection in Rust malware
  • Understanding loader injection and packers in Rust binaries
  • Practical exercises with Rust malware samples

Module 7: Rust Malware Analysis

  • Case studies (e.g., Luca Stealer)
  • Writing YARA rules for Rust binaries
  • Exercise: Analyzing a Rust malware sample and crafting YARA rules

Day 3: Golang Reverse Engineering – Fundamentals and Tooling

Module 8: Introduction to Golang and Reverse Engineering

  • Overview of Go language and its features
  • Why attackers use Go for malware development
  • Go compilation (go build, go install) and runtime basics
  • Exercise: Reversing a simple Go binary

Module 9: Basics of Golang Reversing

  • Challenges in reversing Go binaries
  • Tools for Go analysis: Ghidra, Radare2, GDB, and IDA Pro
  • Go runtime analysis: Common runtime functions, calling conventions
  • Analyzing Go binary sections and basic structures (int, string, slice, map)
  • Exercise: Analyzing a Go binary with basic structures

Module 10: Analyzing Go Structures and Control Flow

  • Go structs and interfaces
  • Understanding control flow in Go: Functions, methods, loops, and error handling
  • Exercise: Reverse engineering a Go program

Day 4: Advanced Golang Reversing and Malware Analysis

Module 11: Advanced Go Reversing Techniques

  • Challenges with stripped Go binaries
  • Advanced Go features: Goroutines, channels, synchronization (wait groups, mutex)
  • Analyzing Go’s memory management and reflection
  • Exercise: Reversing a Go binary with advanced features

Module 12: Go Malware Analysis

  • Case studies of Go-based malware
  • Writing YARA rules for Go binaries
  • Exercise: Reversing Go malware and crafting YARA rules

Module 13: Capstone Project and Conclusion

  • Reverse engineering a complex Go application
  • Guided capstone project combining advanced techniques from both Rust and Go
  • Review of core concepts and open Q&A session
  • Additional resources for further learning

Prerequisite

    • Familiarity with Linux and Rust.
    • A working laptop capable of running virtual machines
    • 4GB RAM required, at a minimum
    • 40 GB free Hard disk space
    • VirtualBox
    • Administrator/root access MANDATORY

This course is suitable for people that are new to Rust. All the theory and concepts about Rust security and Rust fuzz testing will be explained during the course.

Your instructors

patrick ventuzelo webassembly security rust fuzzing

Patrick
Ventuzelo

Patrick, CEO & Founder of FuzzingLabs, has 7 years of experience training on Rust and Go, applied to fuzzing and reverse engineering.

Nabih
Benazzouz

Nabih is a security researcher that specializes in vulnerability research, fuzzing, reverse engineeringr, and secure system development.

Matthieu Christophe

Matthieu is a security engineer with experience in the energy, banking, and automotive sectors. He specializes in hardware and network security.

Tanguy
Duhamel

Tanguy, lead developer, specializes in distributed fuzzing techniques and code auditing, leveraging Rust for high-performance tools.

Pricing

Individual

$4 400
  • E-Learning
  • Self-Paced
  • On Demand
BEST VALUE

Teams
On Demand

Starting at
$4 200
per participant
  • E-Learning
  • Self-Paced
  • On Demand

Private Training

Starting at
$20 000
  • Instructor led
  • In Person or Live Online

Any questions about our services and trainings ?

Get in touch today with any questions that you might have.

Keep in touch with us !

email

contact@fuzzinglabs.com

X (Twitter)

@FuzzingLabs

Github

FuzzingLabs

LinkedIn

FuzzingLabs

email

contact@fuzzinglabs.com

X (Twitter)

@FuzzingLabs

Github

FuzzingLabs

LinkedIn

FuzzingLabs