Binary Ninja for Reverse Engineers

4200€ | 9th to the 12th of October 2023 | Espace Vinci, Rue des Jeuneurs, Paris, France

This course is for experienced reverse engineers, researchers, and analysts looking to migrate from other tools and workflows.

This course provides a comprehensive tour of Binary Ninja's powerful core analysis features, emphasizing the additional capabilities and specific differences between it and other popular tools. We'll also explore performing actions through Binary Ninja's extremely ergonomic Python API, and how to use or extend its analysis results to accelerate your reverse engineering process.

All-in-all, this class will cover everything you need to get the most out of your new best friend!


Objectives of the training

Use Binary Ninja to its fullest potential

Automate simple reverse engineering tasks

Create plugins for Binary Ninja

Leverage Binary Ninja's integrated features to accelerate reversing tasks

The trainer

Who will run this training?

Kyle
Martin


Kyle Martin is a cyber security software engineer and educator, focused on making all things “binary” easier for humans to understand.

Kyle first started teaching at 15 when he became the head counselor at a summer-long computer camp, rewriting their C++ and x86 assembly courses. More recently Kyle led the body of students behind CSAW CTF and CSAW Red, including the internal training initiative enabling students to write the renowned challenges that distinguished those competitions.

Now, Kyle runs reverse engineering focused trainings internationally. Kyle brings with him the expertise and support of the entire Vector 35 team, creators of Binary Ninja.

Jordan
Wiens


Jordan Wiens used to play a lot of CTF, even winning some like DEF CON a handful of times but then they got hard and now he mostly likes to talk about them and make challenges.

Professionally, he's been a network security engineer, vulnerability researcher, engineering manager, and for the last eight years small business founder with two co-founders of Vector 35, makers of Binary Ninja

He's given trainings over two decades across the academic, government, and commercial sectors on reverse engineering and vulnerability research and has presented at conferences like DEF CON, BlueHat, ShmooCon, Insomni'hack, SAS, and many others.

Syllabus

What will we do?

Prerequisites

Students must be able to read and write intermediate-level Python scripts. A foundation in reverse engineering, vulnerability research, firmware analysis, or similar would be helpful, but not required. Students should be familiar with how the stack works, what the heap is, and some basic vulnerability classes (buffer overflow, stack smashing, etc). Guided exercises reminiscent of low-point reversing CTF challenges are integrated into the course, and students should be able to derive their own solutions.

Who Should Attend?

  • Reverse Engineers
  • Vulnerability Researchers
  • Malware Analysts
  • Tool Builders
  • CTF Players
  • Anyone looking to become a Binary Ninja

Agenda

Day 1: Binary Ninja Basics
  • Tools for annotating binaries
  • Introduction to the API
  • Basic crack-me’s
  • Identifying and creating structures
  • Identifying simple vulnerability classes
Day 2: Working with Program Abstractions
  • Decompilation theory
  • What ILs are and how they help us analyze binaries
  • Writing scripts
  • Advanced Binary Ninja usage
Day 3: Automation and Plugins
  • What SSA is how to use it
  • Writing your own plugins
  • Creating advanced visualizations
  • Leveraging the API to suppliment your workflows
  • Automating tasks into one-click (or zero-click!) workflows
Day 4: Advanced Analysis, Debugger, and Student-Chosen Topics
  • Debugger
  • Interprocedural analysis
  • Dataflow analysis
  • Advanced exercises
  • There’s a lot we can’t fit in to one week, so we have some time built in for students to chose from a handful of prepared topics or suggest their own

Hardware Requirements

  • A laptop that can run Binary Ninja (Ubuntu 20.04/22.04 x64; Windows 10/11 x64; MacOSX 11+ x64, MacOSX 12+ arm64)
  • Optional: A VM to run binaries (most binaries are also provided for Linux, Mac, and Windows, though we often focus on just the Linux versions)

Included Course Materials

  • A free non-commercial license of Binary Ninja including one year of updates (can convert to a license extension or used as a discount for a commercial upgrade upon request)
  • Slides
  • Example scripts and binaries
  • Exercise templates
  • Full answers and working solution scripts at the end of the class!

Other trainings

What else might interest you?

Attacking Instant Messaging Applications

Vectorize (Nitay Artenstein & Iddo Eldor)

Attacking the Linux Kernel

Andrey Konovalov

Binary Literacy 2: Static Analysis of C++ with Hex-Rays

Rolf Rolles

iOS for Security Engineers

Victor Cutillas & Etienne Helluy-Lafont

Offensive Azure AD and hybrid AD security

Dirk-jan Mollema

Practical Baseband Exploitation

Vectorize (Pedro Ribeiro & Seamus Burke)

Software Deobfuscation Techniques

Tim Blazytko

Windows Internals for Security Engineers

Yarden Shafir