Binary Ninja

Training

Looking to get the most out of Binary Ninja? Join one of our upcoming trainings or request a private class for your organization today!

 

Binary Ninja for Reverse Engineers

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!

Prerequisites

Students must be able to read and write intermediate-level Python scripts. Students should have a foundation in reverse engineering, vulnerability research, firmware analysis, or similar. 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 are expected to be able to derive their own solutions.

Key Learning Objectives

  • How to use Binary Ninja to its fullest potential
  • How to automate simple reverse engineering tasks
  • How to create plugins for Binary Ninja
  • How to leverage Binary Ninja's integrated features to accelerate reversing tasks

Who Should Attend?

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

Course Agenda

  • Simple crackmes
  • How to read Binary Ninja's ILs
  • Binary annotation / interaction
  • Structuring data
  • Migrating from other tools
  • Finding data and references
  • Source-to-sink analysis in Binary Ninja
  • Binary patching / transforms / unpacking
  • Using and automating the debugger
  • Scripting queries for binaries
  • Single Static Assignment form
  • Dataflow analysis
  • Interprocedural analysis
  • Writing plugins for Binary Ninja
  • And more!

Optional Topics and Exercises Available

  • Writing custom architecture plugins
  • Supporting new binary formats
  • Customizing analysis with workflows
  • Batch processing

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 x64 Linux VM to run binaries (most binaries are also provided for Apple Silicon MacOS)

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!